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/
답변
이것은 노드 모듈을 제외한 모든 것을 복사하는 데 효과적입니다. 🙂 즐기며 위의 답변 덕분에 방금 추가했습니다. Rsync는 요청하지 않고 진행률 표시 줄을 볼 수 있으므로 CP보다 제 생각에 더 좋습니다.
rsync -av fromDirectory/ ToDirectory/ --exclude=node_modules
답변
cp `ls | grep -v Default.png` destdir
답변
# chattr +i /files_to_exclude
# cp source destination
# chattr -i /files_to_exclude