그 전에 현재 로그와 로그를 제외한 모든 로그를 제거하고 싶습니다. 이러한 로그 파일은 20 minutes.So 파일 이름 뒤에 생성, 19 시간 (7시), 10, 30 23 오늘의 날짜입니다 Rm과 Egrep -v 콤보
abc_23_19_10_3341.log
abc_23_19_30_3342.log
abc_23_19_50_3241.log
abc_23_20_10_3421.log
처럼 (또한 어제 날짜를 포함 할 수 있습니다)입니다 50,10 분입니다.
이 경우 나는 현재 기록중인 현재 로그 인 abc_23_20_10_3421.log와 이전의 abc_23_19_50_3241.log ( )를 보존하고 나머지는 제거하고 싶습니다.
나는
내가이files_nodelete=`ls -t | head -n 2 | tr '\n' '|'`
rm *.txt | egrep -v "$files_nodelete"
을 시도 ... 그건 너무 오래입니다 해하지을 삭제 한 후, 폴더를 만들고 해당 폴더의 첫 번째 파일을 넣고 파일을 제거하여 작동하도록 있어요
하지만 작동하지 않았다.하지만 rm 대신 ls를 넣으면 작동한다.
나는 리눅스에서 아마추어 다. 단순한 생각을 제안해라. 논리가있다. xargs rm 나는 시험했다. 그러나 그것은 didnt한다.
은 또한 mtime에 대해 읽을 수 있지만 내가 솔라리스에서은 logadm 도구를 사용해보십시오 Solaris 시스템
일반적인주의 적용 : LS를 구문 분석하지 않습니다 http://mywiki.wooledge.org/ParsingLs 당신은에서 불만을 피할 수 –
' rm'에'-f'를 추가합니다. 그것에 대해 신중해야하지만, 그것이 당신이 원하는 것입니다. 이름에 공백이나 다른 부적절한 문자가 없다면'ls' 출력을 파싱하는 것은 위험하지 않습니다. 문제는 확신 할 수 있는지 여부입니다. –