와일드카드를 사용하여 Linux 상자에서 일치하는 파일 찾기(및 삭제)

와일드카드를 사용하여 Linux 상자에서 일치하는 파일 찾기(및 삭제)

상자에 있는 모든 사용자의 Awstats에 대한 특정 구성 파일을 삭제하고 싶습니다. 한 줄로 삭제하는 가장 좋은 방법은 무엇입니까?

모든 파일은 아래에 /home있으며 다음 구조를 갖습니다.

/home/{username1}/domains/{domain1}/public_html/awstats/.data/awstats.{domain1}.conf
/home/{username1}/domains/{domain2}/public_html/awstats/.data/awstats.{domain2}.conf

/home/{username2}/domains/{domain1}/public_html/awstats/.data/awstats.{domain1}.conf

일부 /home/{username}/domains/폴더에는 여러 도메인 하위 폴더가 있습니다.

답변1

시도해 보셨나요?

rm /home/*/domains/*/public_html/awstats/.data/awstats.*.conf

?

경고: 이름이 다음과 같은 파일이 있는 경우

/home/phred/domains/sci-fi/public_html/awstats/.data/awstats.fantasy.conf

즉, 두 번 {domain1}일치하지 않는 경우 위 명령은 해당 항목도 삭제합니다. 그게 문제인가요?

PS 두 번의 일치 항목이 {domain1}귀하가 요구하는 것인지 또는 제가 누락한 다른 항목이 있는지 확인하지 않는 한, 이 질문은 정규식(정규식)에 관한 것이 아닙니다. *, ?, 및 [(일치하는 경우 )] 호출됩니다.와일드카드.

답변2

/home다음 명령을 실행 하십시오 .

find . -name 'awstats*conf' | xargs rm

결과를 파이핑하기 전에 자체적으로 xargs실행하여 find . -name 'awstas*.conf제거하려는 파일만 나열되는지 확인하십시오. xargs rm확인한 후에만 파이프하세요 .

위와 같이 사용 하면 find지정된 정규식과 일치하는 파일을 반복적으로 찾습니다. 자세한 내용은 find 및 xargs에 대한 매뉴얼 페이지를 확인하세요.

관련 정보