상위 디렉토리에있는 4 개의 최신 디렉토리를 제외하고 모두 삭제하려고합니다. 배시에서 어떻게하면 좋을까요?4 개의 최신 디렉토리를 제외하고 모두 삭제
답변
ls -atrd */ | head --lines=-4 | xargs rm -rf
편집 :는 네 가지를 제외한 모든 (파일과 디렉토리)을 의미한다 "모든 디렉토리하지만 네 newst 것들을 삭제"또는 "삭제하면 'A'인수가 명확히하십시오
이것은 가장 최근에 생성 된 4 개의 디렉토리 대신에 가장 최근에 수정 된 4 개의 디렉토리를 남기고, 점으로 시작하는 디렉토리에 주목하지 않고, 개행을 포함하는 이름에 대해 머리를 깨고, 공백을 포함하는 이름에 대해 xargs를 깨고, rm은 오류 메시지를 인쇄합니다 삭제할 것이 없다면. –
좋은 지적. 나는 이제 'a'를 점에 찍은 디렉토리를 캡처하기 위해 추가했고 현재와 부모 디렉토리를 없애기 위해 grepped했다.하지만 네가 맞다. 이것은 당신이 지적한 것처럼 몇 가지 중요한 한계가있는 간단한 대답입니다. –
수정 사항 : 현재 및 상위 디렉토리를 필터링하는 데 grep이 필요하지 않습니다. ls * / –
을에 ls에 추가 최신 디렉토리 ".
디렉토리에 대한 생성 시간을 알 수 없습니다. 디렉토리가 마지막으로 수정 된 시점, 즉 파일이 추가, 제거 또는 이름 변경된 경우에만 알 수 있습니다.
당신이 할 수있는 다음 :
#!/bin/bash
#store the listing of current directory in var
mydir=`ls -t`
it=1
for file in $mydir
do
if [ $it -gt 5 ]
then
echo file $it will be deleted: $file
#rm -rf $file
fi
it=$((it+1))
done
가 (정말 일어날 수 있도록 RM 전에 #를 제거) 배열, 그것을 할)
또 다른, BSD 안전, 방법 (이유 아니요?)
#!/bin/bash
ARRAY=(`ls -td */`)
ELEMENTS=${#ARRAY[@]}
COUNTER=4
while [ $COUNTER -lt $ELEMENTS ]; do
echo ${ARRAY[${COUNTER}]}
let COUNTER=COUNTER+1
done
- 1. mod_rewrite에있는 하나의 디렉토리를 제외하고 모두
- 2. tablesorter는 하나만 제외하고 모두 작동합니다.
- 3. 결과를 하나만 제외하고 모두 업데이트 하시겠습니까?
- 4. 디렉토리를 런타임에 삭제
- 5. ASP.NET 4 라우팅 캐치 모두
- 6. query_posts 디렉토리를 제외하고 next_posts_link가 작동하지 않습니다.
- 7. 레일 - 특정 IP 주소를 제외하고 모두 차단합니다.
- 8. ASP.NET MVC는 지역을 제외하고 모두 제외합니다.
- 9. 최신 4 뉴스를 표시하는 방법?
- 10. 최대 절전 모드 모두 삭제
- 11. 디렉토리를 스캔하고 최신 일치하는 작성 시간을 얻으십시오
- 12. .htaccess 및 mod_rewrite를 사용하여 몇 가지 예외를 제외하고 디렉토리를 리디렉션
- 13. jquery 벽돌의 첫 번째 이미지를 제외하고 모두 숨기기
- 14. 힘내 푸시는 아무것도하지 않습니다. (모두 최신)
- 15. Django에서 개체의 최신 버전을 모두 검색하려면 어떻게해야합니까?
- 16. htaccess를 사용하여 하나의 디렉토리를 제외하고 다른 도메인으로 여러 도메인 리디렉션
- 17. 4 바이트에 4 개의 정수가 있습니까?
- 18. 두 개의 iterable에서 사전 생성 및 두 개의 소비 모두
- 19. Subversion Authz - 하나만 제외하고 모두 액세스 할 수 있습니다.
- 20. .htaccess로 하나의 디렉토리 이름을 제외하고 모두 거부 할 수 있습니까?
- 21. 이러한 URL을 제외하고 모두 인증을 요구하는 apache htaccess 구성은 무엇입니까?
- 22. Ruby를 사용하여 XML 문서의 특정 태그를 제외하고 모두 제거
- 23. mysql에서 삭제 쿼리를 삭제하면 행이 모두 저장됩니까?
- 24. Git에서 삭제 된 파일을 모두 해제하십시오.
- 25. TortoiseGit을 사용하여 특정 커밋 후에 모두 삭제
- 26. 4 개의 단추 위에 3 개의 단추를 배치하는 방법은?
- 27. 4 개의 mysql 테이블이 조인합니까?
- 28. 4 개의 다른 데이터베이스의 데이터
- 29. 플렉스 4 개 개의 클래스
- 30. 4 개의 다른 마우스 입력
파일이나 디렉토리의 생성 시간은 어디에도 저장되어 있지 않으므로 검색 할 수 없습니다. 얻을 수있는 가장 가까운 것은 inode 변경 시간입니다 : http://www.faqs.org/faqs/unix-faq/faq/part3/section-1.html 디렉토리에 파일을 추가하거나 제거하면 inode가 변경됩니다. –
... 자식 디렉토리에서 파일을 추가 또는 제거하더라도 부모 inode는 변경되지 * 않습니다. –