Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux unix查找的反向打印结果(不带排序)_Linux_Shell_Unix_Find - Fatal编程技术网

Linux unix查找的反向打印结果(不带排序)

Linux unix查找的反向打印结果(不带排序),linux,shell,unix,find,Linux,Shell,Unix,Find,我想对查找结果进行如下排序: 我正在使用: find . -type f -print0 结果是: /mnt/sdcard/qu/led/t1/temp42.txt /mnt/sdcard/qu/led/File.plist /mnt/sdcard/qu/yellow.plist /mnt/sdcard/SHA1Keys/SHA1SUMS /mnt/sdcard/File.xml /mnt/sdcard/File.plist /mnt/sdcard/.DS_Store 但我希望结果是: /

我想对查找结果进行如下排序:

我正在使用:

find . -type f -print0 
结果是:

/mnt/sdcard/qu/led/t1/temp42.txt
/mnt/sdcard/qu/led/File.plist
/mnt/sdcard/qu/yellow.plist
/mnt/sdcard/SHA1Keys/SHA1SUMS
/mnt/sdcard/File.xml
/mnt/sdcard/File.plist
/mnt/sdcard/.DS_Store
但我希望结果是:

/mnt/sdcard/.DS_Store
/mnt/sdcard/File.plist
/mnt/sdcard/File.xml
/mnt/sdcard/SHA1Keys/SHA1SUMS
/mnt/sdcard/qu/yellow.plist
/mnt/sdcard/qu/led/File.plist
/mnt/sdcard/qu/led/t1/temp42.txt
如果我这样做了:

find . -type f print0 | sort -r 
秩序变得一团糟。我在某处看到了这个解决方案:

find . -type f -ls | awk '{print $(NF-3), $(NF-2), $(NF-1), $NF}'
但我不能用它,因为它会打印结果

还要注意,我没有写入文件系统的权限,因此写入文件并反转行不是一个选项。

使用
tac
cat
向后)反转输出。你不需要按相反的顺序排序,你只需要把它倒过来

find . -type f | tac
如果要保留
-print0
,请使用:

find . -type f -print0 | tac -rs '\0'

或者,您可以使用
tail-r

find . -type f | tail -r

find
的输出已排序。您只需要使用
tac
反向打印此问题属于超级用户而不是堆栈溢出IMHO。您使用的是
-print
还是
-print0
?您的输出建议
-print
@jksah,
find
的输出没有以任何特定方式排序。它们看起来像是按字母顺序倒序排列的,但这只是巧合。
find
的输出顺序取决于文件系统内部存储文件的方式。虽然这会颠倒顺序,但不会以任何特定顺序输出文件。
find
的输出顺序取决于文件系统内部存储文件的方式。在OSX上,您可以通过安装
coreutils
来获取tac-请参阅此答案:对我来说,此答案不适用于文件名中包含
0
的文件。此选项仅适用于Mac等BSD系统,不带GNU
tail