Programing

BASH는 하나를 제외한 모든 파일을 복사합니다.

lottogame 2020. 9. 6. 11:50
반응형

BASH는 하나를 제외한 모든 파일을 복사합니다.


Default.png라는 이름을 제외하고 모든 파일을 디렉토리에서 복사하고 싶습니다. 이를 수행하는 방법에는 여러 가지가있는 것 같습니다. 당신에게 가장 효과적인 것은 무엇입니까?


src/파일 만 포함하는 경우 간단 합니다.

find src/ ! -name Default.png -exec cp -t dest/ {} +

경우 src/하위 디렉토리,이 생략합니다을 가지고 있지만, 그 내부에 파일 복사 작업을 수행합니다

find src/ -type f ! -name Default.png -exec cp -t dest/ {} +

src/하위 디렉터리가있는 경우 해당 디렉터리로 반복되지 않습니다.

find src/ -type f -maxdepth 1 ! -name Default.png -exec cp -t dest/ {} +

다음과 같아야합니다.

cp -r !(Default.png) /dest

현재 폴더에 중첩 된 폴더로 복사하는 경우 (아래의 경우 예라고 함) 해당 디렉토리도 생략해야합니다.

cp -r !(Default.png|example) /example

rsync는 오랫동안 내 cp / scp 대체품이었습니다.

rsync -av from/ to/ --exclude=Default.png

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)
-v, --verbose               increase verbosity

난 그냥 할거야 :

cp srcdir/* destdir/ ; rm destdir/Default.png

파일이 크지 않는 한. 그렇지 않으면 사용 예

find srcdir -type f/ |grep -v Default.png$ |xargs -ILIST cp LIST destdir/

cp `ls | grep -v Default.png` destdir

# chattr +i /files_to_exclude
# cp source destination
# chattr -i /files_to_exclude

이것은 노드 모듈을 제외한 모든 것을 복사하는 데 효과적입니다. :) enjoy 및 위의 답변에 대한 것입니다. 진행 상황을 볼 수 있듯이 Rsync => CP ...

rsync -av from / to / --exclude = node_modules

참고 URL : https://stackoverflow.com/questions/1313590/bash-copy-all-files-except-one

반응형