如果我不find ./
,我得到類似的結果:截斷髮現./命令
/Volumes/FulfilmentArray//.Trashes/1060/ffmpeg2pass-0.log.mbtree.temp
有沒有辦法做find ./
命令僅返回文件名和容器文件夾?在上述情況下,這將是:
1060/ffmpeg2pass-0.log.mbtree.temp
如果我不find ./
,我得到類似的結果:截斷髮現./命令
/Volumes/FulfilmentArray//.Trashes/1060/ffmpeg2pass-0.log.mbtree.temp
有沒有辦法做find ./
命令僅返回文件名和容器文件夾?在上述情況下,這將是:
1060/ffmpeg2pass-0.log.mbtree.temp
find ./ | rev | cut -d/ -f-2 | 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 ./ | rev | cut -d/ -f-2 | rev
我敢肯定,AWK可能被交換出去的sed。因爲你說過文件名,所以我添加了「-type f」標誌,但是如果你想要目錄,只需刪除它。
find ./ -type f|awk -F'/' '{ print $(NF-1)"/"$NF }'
這可能是去做一個辦法:
find . | awk -F "/" '{ if (NF > 2) { print $(NF-1) "/" $NF; } else { print $NF; }}'
謝謝。這是否需要比普通的find命令更長的時間?我需要在大約1M個文件的捲上運行此操作。 – David542
在'。/ file'等結果的情況下引導斜線,即當前目錄中的文件。 – favoretti
@ David542長約1-2秒。與時間查找相比,不是一個因素。 :) – Perleone