카테고리 보관물: Unix

Unix

수천을 포함하는 폴더에서 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 앞에 다른 경로를 넣어 파일을 이동할 수도 있습니다.