링크 ux 셸 ls xargs rm 조합 파일 삭제
예 를 들 면: 시간 순 으로 마지막 10 개의 파일 을 삭제 합 니 다.
ls -t | tail -10 | xargs rm -rf
물론
ls -lt | tail -100 | awk '{ print $9 }' | xargs rm -rf
두 가지 효 과 는 같은 이치 입 니 다. 시간 에 따라 거꾸로 배열 하려 면 현재 와 가장 가 까 운 시간 이 마지막 에 표 시 될 수록 ls - rt 를 사용 하 십시오. 물론 find 와 rm 을 사용 하여 삭제 할 수도 있 습 니 다.
아래 문장 으로 내용 을 비 울 수도 있 습 니 다.
#!/bin/bash
for i in `ls test.log.??` ;do
echo "">$i
done
물론 여러 디 렉 터 리 아래 라면 파일 을 지 워 도 됩 니 다.단지 한 겹 더 끼 워 넣 어서 기억 할 뿐이다.내 디 렉 터 리 구 조 는 다음 과 같다.
[root@web tomcat]# ll
总计 260
drwxr-xr-x 2 www www 20480 12-28 09:23 bbs
drwxr-xr-x 2 www www 16384 12-28 00:00 comment
drwxr-xr-x 2 www www 36864 12-28 03:50 enterprise
drwxr-xr-x 2 www www 24576 12-28 00:00 expert
drwxr-xr-x 2 www www 36864 12-28 00:02 feedback
drwxr-xr-x 2 www www 36864 11-15 12:30 generator
drwxr-xr-x 2 www www 24576 12-28 00:02 passport
drwxr-xr-x 2 www www 20480 12-28 00:00 search
drwxr-xr-x 2 www www 20480 12-28 09:35 usercenter
[root@web comment]# ll
总计 936
-rw-rw-r-- 1 www www 2 12-28 09:57 catalina.2012-12-24.log
-rw-rw-r-- 1 www www 2 12-28 09:57 catalina.2012-12-25.log
-rw-rw-r-- 1 www www 2 12-28 09:57 catalina.2012-12-26.log
-rw-rw-r-- 1 www www 2 12-28 09:57 catalina.2012-12-27.log
-rw-r--r-- 1 www www 34155 12-28 10:01 catalina.out
-rw-rw-r-- 1 www www 2 12-28 09:57 localhost.2012-12-14.log
-rw-rw-r-- 1 www www 2 12-28 09:57 localhost.2012-12-17.log
-rw-rw-r-- 1 www www 2 12-28 09:57 localhost_access_log.2012-12-25.txt
-rw-rw-r-- 1 www www 2 12-28 09:57 localhost_access_log.2012-12-26.txt
-rw-rw-r-- 1 www www 629729 12-28 09:57 localhost_access_log.2012-12-27.txt
위의 모든 디 렉 터 리 에 있 는 모든 파일 을 비우 고 싶다 면 이렇게 할 수 있 습 니 다.
for i in `ls`;do (cd $i ;for m in `ls`;do echo " ">$m;done);done
주: 위의 괄호 는 없어 서 는 안 됩 니 다.
파일 의 내용 을 비우 고 싶 으 면 xargs 를 사용 하여 echo "> file 에 맞 추 면 제대로 적용 되 지 않 습 니 다.예:
find . -name "test.*" |xargs echo "">
find 와 echo 는 이렇게 배합 하여 사용 하지 않 기 때문이다.그 두 가 지 는 간단하게 배합 하면 또 다른 묘용 이 있다.
find . -name "file*" -print | xargs echo "" > /tmp/find.log
이 문장의 역할 은 현재 디 렉 터 리 에서 file 로 시작 하 는 모든 파일 을 찾 고 상대 적 인 경로 와 이름 을 find. log 파일 에 입력 하 는 것 입 니 다. 입력 방식 은 줄 마다 입 니 다.조건 에 맞 는 원본 파일 은 변 하지 않 습 니 다.
find 가 파일 을 찾 고 비우 기 위해 서 는 어 쩔 수 없 는 것 일 까?이것 은 불가능 하 다 는 것 이 분명 하 다.풋내기 들 의 방법 은:
#!/bin/bash
for i in `find ./server* -name "test.log" `
do
cat /dev/null > $i
done
고수 들 은 분명히 이렇게 긴 문 구 를 사용 할 가치 가 없다. 고수 들 의 방법 은:
[root@localhost log]# find . -name "maillog*" |awk '{ print "echo>"$0}'|bash
아예 echo 도 빼 든 가.
[root@localhost log]# find . -name "maillog*" |awk '{ print ">"$0}'|bash
이 문 구 는 어떻게 변 화 했 습 니까?
[root@localhost log]# find . -name "maillog*"|xargs -i ls -l {}
-rw------- 1 root root 0 11-09 05:06 ./maillog
-rw------- 1 root root 0 11-09 05:06 ./maillog.1
이상 은 모든 파일 을 찾기 위해 강력 한 awk 를 이용 하여 모든 출력 파일 앞 에 echo "> 를 추가 할 수 있 습 니 다. bash 구문 으로 나타 납 니 다.
[root@localhost log]# find . -name "maillog*"|awk '{print "echo > "$0}'
echo > ./maillog
echo > ./maillog.1
주: 제 위의 예 는 디 렉 터 리 만 열 거 했 을 뿐 find 를 찾 을 때 아래 의 하위 디 렉 터 리 에 조건 에 맞 는 문 구 를 포함 합 니 다.
아래 명령 에 따라 find 를 찾 아 파일 을 대량으로 비 울 수도 있 습 니 다.
find . -type f -size +5M -exec cp /dev/null {} \;
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.