재귀 적으로 파일 제거
Mac에서 Linux 서버로 파일을 옮긴 후에 얻는 성가신 ._ 및 .DS_Store 파일을 제거하는 솔루션이 있습니까?
시작 디렉토리를 지정하고 그대로 두시겠습니까? / var / www / html / down ...처럼
디렉토리로 변경하고 다음을 사용하십시오.
find . -name ".DS_Store" -print0 | xargs -0 rm -rf
find . -name "._*" -print0 | xargs -0 rm -rf
테스트되지 않았으므로 먼저 xargs없이 시도하십시오!
먼저 디렉토리로 변경하는 대신 찾기 후 마침표를 디렉토리로 바꿀 수 있습니다.
find /dir/here ...
find /var/www/html \( -name '.DS_Store' -or -name '._*' \) -delete
최신 findutils는 다음을 지원합니다 -delete
.
find . -name ".DS_Store" -delete
-print
삭제 목록을 얻으려면 추가하십시오 .
최신 POSIX 시스템을 사용하는 경우 명령이 작동합니다. 적어도 그것은 OS X 10.8에서 작동하며 macOS 10.12 (Mojave)에서 테스트 한 다른 사람들에게는 작동합니다.
@ X-Istence의 게시물에 대한 의견에서 @ephemient에게 감사의 말을 전합니다 (자신의 답변을 보증하는 데 도움이되었다고 생각했습니다).
간단한 명령 :
rm `find ./ -name '.DS_Store'` -rf
rm `find ./ -name '._'` -rf
행운을 빕니다!
cd /var/www/html && find . -name '.DS_Store' -print0 | xargs -0 rm
cd /var/www/html && find . -name '._*' -print0 | xargs -0 rm
bash 대신 zsh로 전환 할 수 있습니다. **를 사용하면 디렉토리 트리의 어느 곳에서나 파일을 일치시킬 수 있습니다.
$ rm /var/www/html/**/_* /var/www/html/**/.DS_Store
다음과 같이 결합 할 수도 있습니다.
$ rm /var/www/html/**/(_*|.DS_Store)
Zsh에는 bash가 부족한 다른 많은 기능이 있지만 그중 하나만으로도 가치가 있습니다. cygwin 및 OS X뿐만 아니라 대부분의 (아마도 모든) Linux 배포판에서 사용할 수 있습니다.
zsh 사이트 에서 자세한 정보를 찾을 수 있습니다 .
find . -name "FILE-TO-FIND"-exec rm -rf {} \;
"Thumbs.db"를 재귀 적으로 삭제하는 예;
find . -iname "Thumbs.db" -print0 | xargs -0 rm -rf
다음으로 확인하십시오.
find . -iname "Thumbs.db"
현재 경로 안에 "Thumbs.db"가있는 항목은 표시되지 않습니다.
이 답변에 -print를 추가하여 제거 대상을 확인하는 것이 좋습니다
find /var/www/html \( -name '.DS_Store' -or -name '._*' \) -delete -print
Bash 4.0 ++이 있다면
#!/bin/bash
shopt -s globstar
for file in /var/www/html/**/.DS_Store /var/www/html/**/._
do
echo rm "$file"
done
몇 가지 참고할 사항 :
'-delete'는 재귀 적이 지 않습니다. 따라서 .TemporaryItems (폴더)에 파일이 있으면 명령이 실패합니다.
macs가 만든 성가신 파일이 많이 있습니다. .DS_Store ._. DS_Store .TemporaryItems .apdisk
이 하나의 명령은 모든 것을 다룹니다. 여러 개의 일치 항목에 대해 찾기 실행을 반복하여 저장하지 않습니다.
find /home/foo \( -name '.DS_Store' -or -name '._.DS_Store' -or -name '._*' -or -name '.TemporaryItems' -or -name '.apdisk' \) -exec rm -rf {} \;
이것은 또한 작동합니다 :
sudo rm -rf 2018-03-*
여기에 형식이 2018-03-03 인 파일을 삭제하십시오 (다른 것)
단순하게 유지
참고 URL : https://stackoverflow.com/questions/2016844/recursively-remove-files
'IT' 카테고리의 다른 글
JS fetch API로 파일을 어떻게 업로드합니까? (0) | 2020.06.22 |
---|---|
IIS7.5 및 ASP.NET v2의 웹 응용 프로그램 문제 (web.config 오류) HTTP 500.19 (0) | 2020.06.22 |
objective-c typedef를 해당하는 문자열로 변환 (0) | 2020.06.22 |
MAX (날짜)를 사용하여 GROUP BY (0) | 2020.06.22 |
특정 위치에서 문자열에 문자를 삽입하는 방법은 무엇입니까? (0) | 2020.06.22 |