2
在bash,我可以找到的文件的基本名稱(名稱不帶路徑)是這樣的:查找文件恢復基本名稱和大小
find . -exec basename {} \;
,我可以得到文件的大小是這樣的:
find . -exec ls -l {} \; | awk '{print $5}'
但我需要獲取由空格分隔的基本名稱和文件大小。
如何將這兩個命令正確地結合使用一個查找操作? 此代碼不起作用:
find . -exec basename {} \; -exec ls -l {} | awk '{print $5}' \;
awk: can't open file ;find:
source line number 1
-exec: no terminating ";" or "+"
我想創建一個快速的重複文件查找。使用這個列表,我會做一個排序,然後使用uniq找到使用條件重複的所有文件:重複=相同的「基本名稱」&相同的「大小」(沒有md5檢查)。
到目前爲止,製作這個初始列表是我在句法上(也許是編程)掛起的地方。如果你有更好的方法,請告訴我。它試圖使用最基本的bash命令使其工作,因此它可以在linux和mac上運行而無需安裝任何東西。
感謝您的迴應,但是OSX不使用GNU工具,所以它不適用於這個跨平臺腳本。 find命令僅限於FreeBSD使用的find版本中可用的命令。更多信息在這裏:http://stackoverflow.com/questions/752818/find-lacks-the-option-printf-now-what – Kevvvin
無瑕!優秀的編碼!完善! – Kevvvin
要回答你關於osx版本的問題,我必須將它作爲一個實用程序部署到創建相機鏡頭驅動器的人員,他們都在各種版本的OSX上工作,所以它必須相當獨立於此。這個想法是,如果不安裝其他任何東西,他們可以在驅動器的根目錄下運行一個小型bash程序,該程序可以快速解析驅動器上的所有文件,並告訴它們是否存在任何文件名大小的錯誤。如果有這些類型的蠢事,他們搞砸創造的鏡頭驅動器(每個攝像頭的主人應該是唯一的)。 – Kevvvin