Linux 截断的find./command

Linux 截断的find./command,linux,unix,find,Linux,Unix,Find,如果我找到了。/,我得到的结果类似于: /Volumes/FulfilmentArray//.Trashes/1060/ffmpeg2pass-0.log.mbtree.temp 是否有方法执行find./命令以仅返回文件名和容器文件夹?在上述情况下,应为: 1060/ffmpeg2pass-0.log.mbtree.temp 我相信awk可以换成sed。我添加了-typef标志,因为您提到了文件名,但是如果您也需要目录,只需删除它 find ./ -type f|awk -F'/' '{

如果我找到了。/,我得到的结果类似于:

/Volumes/FulfilmentArray//.Trashes/1060/ffmpeg2pass-0.log.mbtree.temp
是否有方法执行find./命令以仅返回文件名和容器文件夹?在上述情况下,应为:

1060/ffmpeg2pass-0.log.mbtree.temp

我相信awk可以换成sed。我添加了-typef标志,因为您提到了文件名,但是如果您也需要目录,只需删除它

find ./ -type f|awk -F'/' '{ print $(NF-1)"/"$NF }'

我相信awk可以换成sed。我添加了-typef标志,因为您提到了文件名,但是如果您也需要目录,只需删除它

find ./ -type f|awk -F'/' '{ print $(NF-1)"/"$NF }'

这可能是一种解决方法:

find . | awk -F "/" '{ if (NF > 2) { print $(NF-1) "/" $NF; } else { print $NF; }}'

这可能是一种解决方法:

find . | awk -F "/" '{ if (NF > 2) { print $(NF-1) "/" $NF; } else { print $NF; }}'
一个小小的解释可能会大有帮助。使用的命令包括:

rev:反转每行中字符的顺序。 剪切:从每行文件中删除节。 因此,前面的代码通过一个示例执行以下操作:

打印出相对于当前目录所在位置的所有文件的路径

./Machine Learning - Stanford/Self-notes/08-10.txt
反转路径字符串

txt.01-80/seton-fleS/drofnatS - gninraeL enihcaM/.
在保留第一部分的第二个正斜杠处剪切字符串,以便包含文件名和包含文件夹,相对于在其中执行查找的文件夹

txt.01-80/seton-fleS --separated here-- /drofnatS - gninraeL enihcaM/.
逆转结果

Self-notes/08-10.txt
一个小小的解释可能会大有帮助。使用的命令包括:

rev:反转每行中字符的顺序。 剪切:从每行文件中删除节。 因此,前面的代码通过一个示例执行以下操作:

打印出相对于当前目录所在位置的所有文件的路径

./Machine Learning - Stanford/Self-notes/08-10.txt
反转路径字符串

txt.01-80/seton-fleS/drofnatS - gninraeL enihcaM/.
在保留第一部分的第二个正斜杠处剪切字符串,以便包含文件名和包含文件夹,相对于在其中执行查找的文件夹

txt.01-80/seton-fleS --separated here-- /drofnatS - gninraeL enihcaM/.
逆转结果

Self-notes/08-10.txt

谢谢这是否比正常的find命令花费更长的时间?我需要在一个包含大约1M个文件的卷上运行此操作。在出现类似于./file的结果时,保留前导斜杠,即文件位于当前目录中。@David542大约长1-2秒。与查找时间相比,这不是一个因素:因为你有大量的数据,这是很多管道。如果您在bash中,则每个管道都是一个子shell,并获得自己的数据副本。在完成所有子shell之前,不会释放此内存。谢谢。这是否比正常的find命令花费更长的时间?我需要在一个包含大约1M个文件的卷上运行此操作。在出现类似于./file的结果时,保留前导斜杠,即文件位于当前目录中。@David542大约长1-2秒。与查找时间相比,这不是一个因素:因为你有大量的数据,这是很多管道。如果您在bash中,则每个管道都是一个子shell,并获得自己的数据副本。在完成所有子shell之前,不会释放此内存。