私はこれを試しました:
find . -type f -size 128 -exec mv {} new_dir/ \;
これは機能せず、エラーも発生しません。以下は、使用時にファイルがどのように見えるかの例です。stat -x
$ stat -x ./testfile | grep Size
Size: 128 FileType: Regular File
答え1
私のマンページから(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を意味しました。彫刻または、64Kbytesは、サイズが127 * 512 + 1(65025)から128 * 512(65536)バイトの間のファイルのみと一致します。
-size 128c
-size -128c
正確に128バイトのファイル、128バイト(0〜127)より小さいファイル、-size +128c
128バイト(129バイト以上)より大きいファイルが必要な場合は、このオプションを使用する必要があります。
答え2
cpNlargestをaaでエンコードしました。CPコマンドのバージョンが追加されました。窒素少し残った表現する。
#!/bin/bash
# cp - copy the N largest files and directories
# cp SOURCE DEST N EXP
SOURCE=$1
DEST=$2
N=$3
EXP=$4
for j in $(du -ah $SOURCE | grep $EXP | sort -rh | head -${N} | cut -f2 -d$'\t');
do
cp $j $DEST;
done;
そのため、コマンドラインから次のように呼び出します。
$cpNlargest data-input/ data-output/ 5 "json"