.index로 끝나는 파일만 찾기 + 삭제

.index로 끝나는 파일만 찾기 + 삭제

Red Hat Enterprise Linux에는 Kafka 프로덕션 머신이 있습니다.

  1. /var/kafka/kafka-logs해당 엔딩 아래의 모든 파일을 어떻게 삭제합니까 .index?

  2. .index 로 끝나는 모든 파일을 어떻게 다른 폴더로 이동할 수 있습니까 /var/tmp/INDEX_BACKUP?

예시 내용은 다음과 같습니다 /var/kafka/kafka-logs.

./hd3gd.ewhd.pri.processed-98/00000000000000000011.index
./hd3gd.ewhd.pri.processed-99/00000000000000000000.index
./hd3gd.ewhd.suspected_relations-0/00000000000000000000.index
./hd3gd.ewhd.suspected_relations-1/00000000000000000000.index
./hd3gd.ewhd.suspected_relations-2/00000000000000000000.index
./hd3gd.ewhd.suspected_relations-3/00000000000000000000.index
./hd3gd.ewhd.suspected_relations-4/00000000000000000000.index
./hd3gd.ewhd.suspected_relations-5/00000000000000000000.index
./frfwjnwe.fwefew.heartbeat-0/00000000000000000000.index
./frfwjnwe.fwefew.heartbeat-1/00000000000000000000.index
./frfwjnwe.fwefew.heartbeat-1/00000000000000017239.index
./frfwjnwe.fwefew.heartbeat-2/00000000000000000000.index
./frfwjnwe.fwefew.heartbeat-2/00000000000000017238.index

답변1

  • GNU 또는 호환 버전을 사용하여 .index다음으로 끝나는 모든 파일을 삭제하세요./var/kafka/kafka-logsfind

    find /var/kafka/kafka-logs -name \*.index -delete
    

    POSIX적으로:

    find /var/kafka/kafka-logs -name \*.index -exec rm -f {} +
    
  • GNU를 사용하여 다른 폴더로 이동하십시오 mv.

    find /var/kafka/kafka-logs -name \*.index -exec mv -t /var/tmp/INDEX_BACKUP {} +
    

    POSIX적으로:

    find /var/kafka/kafka-logs -name \*.index -exec sh -c '
      exec mv "$@" /var/tmp/INDEX_BACKUP/' sh {} +
    

답변2

광고 1:

find /var/kafka/kafka-logs -type f -name "*.index" -exec rm -v {} \;

두 번째 질문에 대한 답은 여기에서 찾을 수 있습니다.find 명령 다음에 mv 명령을 통합하는 방법은 무엇입니까?.

답변3

rm 명령의 더 큰 매개변수로 인해 이러한 명령은 더 빠르게 실행됩니다(find / -exec와 비교하여). GNU 찾기가 필요하지 않습니다.

Q1.

find /var/kafka/kafka-logs -type f -name "*.index" | xargs rm

Q2.

find /var/kafka/kafka-logs -name "*.index" | xargs -I {} mv {} /var/tmp/INDEX_BACKUP

또한 GNU find는 ACL이나 확장 속성을 지원하지 않으므로 Solaris에서는 GNU find를 사용하고 싶지 않을 것입니다.

답변4

bash존재하지 않는 것을 사용 하고 가정하십시오.수천다음 파일 중:

  1. rm /var/kafka/kafka-logs/**.index

  2. mv /var/kafka/kafka-logs/**.index /var/tmp/INDEX_BACKUP

    00000000000000000000.index이는 이름이 대상에 이미 존재하는지 확인하지 않으므로 거기에 있는 파일을 덮어쓸 수 있습니다(예를 들어, 예제 파일을 사용하면 파일의 단일 복사본만 남게 됩니다).

두 명령 모두 globstar쉘 옵션이 다음을 bash사용하여 설정 되었다고 가정합니다.

shopt -s globstar

**이렇게 하면 pathnames *와 유사하게 일치하는 glob 패턴이 활성화됩니다 /.

관련 정보