수천을 포함하는 폴더에서 100 개의 파일을 이동하는 방법? 개의 파일 (모든

수천 개의 파일이있는 디렉토리가 있습니다. 100 개의 파일 (모든 파일)을 다른 위치로 옮기려면 어떻게해야합니까?



답변

for file in $(ls -p | grep -v / | tail -100)
do
mv $file /other/location
done

즉 파일 이름은 줄 바꿈 (기본값 가정에 공백이 포함되지 않은 가정 $IFS), 와일드 카드 문자 ( ?, *, [) 또는 시작 -.


답변

zsh에서 가장 쉽습니다.

mv -- *([1,100]) /other/location/

이 이동 처음 100 비 숨겨진 파일 (모든 종류의 변경 ([1,100])(.[1,100])대한 일반 전용 또는 파일이 (^/[1,100])어떤 종류의하지만 대한 디렉토리 ) 이름 사전 식 순서입니다. o glob 한정자를 사용하여 다른 정렬 순서를 선택할 수 있습니다 ( 예 : 가장 오래된 100 개의 파일 이동).

mv -- *(Om[1,100]) /other/location/

다른 쉘에서는 조기 종료와 함께 루프에서 수행 할 수 있습니다.

i=0
for x in *; do
  if [ "$i" = 100 ]; then break; fi
  mv -- "$x" /other/location/
  i=$((i+1))
done

또 다른 이식 가능한 방법은 파일 목록을 작성하고 마지막 100을 제외한 모든 것을 제거하는 것 입니다.


답변

zsh를 사용하지 않는 경우 :

set -- *
[ "$#" -le 100 ] || shift "$(($# - 100))"
mv -- "$@" /target/dir

마지막 (알파벳 순서로) 100을 움직입니다.


답변

쉘의 다음 oneliner가 도움이 될 것입니다.

foreach i (`발견 Source_Directory -type f --max-depth 1 | tail -100`); 하다; {mv $ i Target_Directory}; 끝난


답변

다음은 나를 위해 일했습니다. 이전에 게시 한 경우 죄송하지만 빠른 스캔에서 보지 못했습니다.

ls path/to/dir/containing/files/* | head -100 | xargs -I{} cp {} /Path/to/new/dir


답변

shuf -n 100 -e * | xargs -i mv {} path-to-new-folder

에서 https://stackoverflow.com/questions/14033129/how-to-move-a-given-number-of-random-files-on-unix-linux-os


답변

mmv 는 파일의 대량 이름 바꾸기를 수행 할 수있는 뛰어난 유틸리티입니다. (나는에 있었다 sudo apt-get install mmv설치 내 컴퓨터에.) 간단한 사용 예 : 당신은 당신이 소문자 .JPG로 변경하고 싶은 것을 확장 .JPG 가진 파일의 디렉토리가 있다고 가정합니다. 다음 명령은 트릭을 수행합니다.

mmv \*.JPG \#1.jpg

백 슬래시는 와일드 카드가오고 있음을 나타내는 데 사용됩니다. * / JPG는 JPG 확장명과 일치합니다. 명령의 “to”부분에서 # 1은 첫 번째 와일드 카드의 일치하는 텍스트를 사용하여 파일 이름을 바꿉니다. 물론 # 1 앞에 다른 경로를 넣어 파일을 이동할 수도 있습니다.