我正在寻找Linux命令,它按文件大小的升序批处理当前目录中的所有文件。你知道吗
作为一个具体的例子,myhello.py
打印文件名:
print 'hello', sys.argv[1]
如果我的当前目录中有大小为(file1)<;=size(file2)<;=size(file3)的文件file1
、file2
和file3
,那么应该输出我要查找的Linux命令
hello, file1
hello, file2
hello, file3
现在,我用
find . -type f -exec python hello.py {} \;
但我不知道如何处理文件的具体顺序对其大小。你知道吗?谢谢。你知道吗
使用ls
ls
有一种使用-S
开关按大小排序的简单方法或者作为一行:
for x in $(ls -S); do python hello.py $x; done
或者使用
xargs
,比如:ls -1 -S | xargs -n 1 python hello.py
,但要小心,因为这样会将文件名中的空格分隔成多个文件,下面将详细介绍*使用查找而不更改你好,派瑞你知道吗
说明:
du
用文件大小进行注释sort
按列大小排序cut
删除额外大小的列,只保留第二列,即文件名xargs
呼叫你好,派瑞在每条线上使Python脚本接受管道
现在您可以通过管道将输出传输到它,例如:
*如果您需要支持带有空格的文件名,我们应该使用以0结尾的行,因此:
相关问题 更多 >
编程相关推荐