Find
如何根據大小移動文件?
我試過這個:
find . -type f -size 128 -exec mv {} new_dir/ \;
哪個不起作用,也沒有給我錯誤。這是使用時文件外觀的範例
stat -x
$ stat -x ./testfile | grep Size Size: 128 FileType: Regular File
從我的手冊頁(在 MacOS 10.11 機器上)
-size n[ckMGTP] True if the file's size, rounded up, in 512-byte blocks is n. If n is followed by a c, then the primary is true if the file's size is n bytes (characters). Similarly if n is followed by a scale indicator then the file's size is compared to n scaled as: k kilobytes (1024 bytes) M megabytes (1024 kilobytes) G gigabytes (1024 megabytes) T terabytes (1024 gigabytes) P petabytes (1024 terabytes)
c
(非標準擴展以外的後綴)。因此,由於您沒有指定後綴,因此您的
-size 128
意思是 128 blocks或 64Kbytes 僅與大小在 127512+1 (65025) 和 128512 (65536) 字節之間的文件匹配。
-size 128c
如果您想要恰好 128 字節-size -128c
的文件、大小嚴格小於 128 字節(0 到 127)-size +128c
的文件以及大小嚴格大於 128 字節(129 字節及以上)的文件,則應該使用。