/html
이것이 내 폴더 의 내용입니다 .
[root@ip-10-0-7-121 html]# ls
a wp-activate.php wp-content wp-mail.php
b wp-admin wp-cron.php wp-settings.php
healthy.html wp-blog-header.php wp-includes wp-signup.php
index.php wp-comments-post.php wp-links-opml.php wp-trackback.php
license.txt wp-config.php wp-load.php xmlrpc.php
readme.html wp-config-sample.php wp-login.php
/ 폴더를 다른 폴더로 옮기지 a
않고 폴더만 빼고 모두 삭제하고 싶어요 . 이를 수행하는 명령은 무엇입니까?b
a
b
답변1
부정을 사용할 수 있습니다 find
(위험은 본인 부담).
이름이 "a" 또는 "b"인 모든 파일 및 폴더를 찾습니다.
find -name a -o -name b
현재 디렉터리에서 이름이 "a" 또는 "b"인 모든 파일과 폴더를 찾습니다."
find -maxdepth 1 -name a -o -name b
현재 디렉터리에서 이름이 "a" 및 "b"가 아닌 모든 파일과 폴더를 찾습니다.
find -maxdepth 1 ! -name a ! -name b
또한 결과에서 현재 디렉터리를 제외합니다.
find -maxdepth 1 ! -name a ! -name b ! -name .
이제 다음을 사용하여 생성된 모든 요소를 삭제할 수 있습니다 rm
.
find -maxdepth 1 ! -name a ! -name b ! -name . -exec rm -rv {} \;
답변2
이 명령을 사용하여 선택한 파일/폴더(숨겨진 파일/폴더 포함)를 제외한 현재 디렉터리의 모든 파일/폴더를 삭제합니다.
find . -maxdepth 1 ! -name "file1.php" ! -name "file2.js" ! -name "dir1" ! -name "dir2" ! -name . -exec rm -r {} \;