技术咨询:如何列出指定目录及文本文件记录目录中的文件
没问题,这两个场景在日常操作里挺常见的,我给你一步步讲清楚:
1. 列出指定目录下的文件
最常用的就是ls命令,根据需求加不同选项就行:
- 基础查看:直接跟上目录路径,比如要查看
/home/my_files下的文件,输入:ls /home/my_files - 查看详细信息(权限、所有者、大小等):加
-l选项,输出会更规整:ls -l /home/my_files - 显示隐藏文件(以
.开头的文件,比如.bashrc):加-a选项:ls -a /home/my_files - 递归查看所有子目录里的文件:加
-R选项,会逐层列出所有内容:ls -R /home/my_files - 按文件大小排序显示:配合
-l和-S(大写S),大文件会排在前面:ls -lS /home/my_files
2. 列出文本文件中记录的目录内的文件
假设你的目录列表文件叫dir_list.txt,里面每行一个目录路径(比如/home/docs、/var/log),可以用这两种方法:
方法一:Bash循环(直观易读,适合新手)
逐行读取文件里的目录,逐个执行ls,还能加提示信息,方便区分不同目录的内容:
while IFS= read -r dir; do echo "--- 以下是目录 $dir 的文件 ---" ls "$dir" done < dir_list.txt
小贴士:
IFS=和-r是为了兼容带空格的目录名(比如/home/my documents),避免出现解析错误。
方法二:xargs命令(简洁高效)
如果不需要额外提示,只想快速输出所有内容,用xargs更省事:
xargs -d '\n' ls < dir_list.txt
要是想把结果保存到新文件里,直接加重定向就行:
xargs -d '\n' ls < dir_list.txt > all_files.txt
内容的提问来源于stack exchange,提问作者mrr
相关产品推荐
相关产品推荐

