나는 이것을 시도했습니다 :
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"