如何在桌面上创建一个名为 Option1.txt 的新文件。此文件应包含我的“主”目录的内容。我该如何输出:
- 按条目扩展名的字母顺序排序。
- 包括所有隐藏文件和文件夹。
- 以人类可读的格式显示所有文件的大小
答案1
ls -alXh > Option1.txt
man ls
也会有帮助... ;)
答案2
ls -ahlX ~|awk '{printf "%-20s %-40s\n",$9,$5 }'>~/Desktop/Option1.txt
按条目扩展名的字母顺序排序。(Using ls -X
)
包括所有隐藏文件和文件夹。(使用ls -a
)
以人类可读的格式显示所有文件的大小(使用ls -lh
)
awk '{print $9,$5 }
仅打印文件和目录的名称和大小
最后存入Option.txt。
%-20s %-40s\n
用于格式化列
但正如@Glenn Jackman 在评论中指出的那样,如果目录名中有空格,这将不会打印完整的目录名。
所以,
另一个选择是(来源)
ls -ahlX ~|gawk -F':[0-9]* ' '/:/{print $2}'>~/Desktop/Option1.txt
即使有空格,这个也会打印文件名。
但解析 ls 始终是一个坏主意。
答案3
解析输出ls
从来都不是一个好主意。我的方法是使用du
列出每个文件的磁盘使用情况,并--mad-depth
选择仅列出当前目录(因为du
是递归的),然后sort
根据第二个字段设置命令组织输出。
du --all --max-depth 1 --human-readable | sort --key=2
将其重定向到文件很简单du --all --max-depth 1 --human-readable | sort --key=2 > outputFileName.txt
您可能还对 提供的更详细信息感兴趣du
。请参阅我的另一个使用find
和的答案du
(尽管可能需要修改以包含| sort
部分 ):命令“ls”显示目录大小而不是块大小