두 번 사이에 생성 된 파일을 삭제하는 방법은 무엇입니까?

이스마일 선생

데이터베이스를 백업 할 폴더가 있고 오전 11시에서 오후 3시 사이에 생성 된 모든 백업을 삭제하고 싶습니다. 요일이 무엇이든 상관 없습니다.

이 명령이 매우 도움이되는 것으로 나타 났지만 사용 사례에서는 그렇지 않습니다.

find . -type f -newermt '01 nov 2018 00:00:00' -not -newermt '10 nov 2018 00:00:00' -delete

그러나 여기에서는 두 날짜 사이의 간격을 강요합니다! 특정 두 시간 사이에 생성 된 백업 만 삭제하고 싶습니다.

제프 샬러

간단히 말해서 태그를 지정 했다면 stat파일의 수정 시간을 추출하는 date명령 주어진 시간에서 시간을 추출하는 GNU 명령을 사용할 수 있습니다.

find . -type f -exec sh -c '
  h=$(date -d @$(stat -c %Y "$1") +%-H); [ "$h" -ge 11 ] && [ "$h" -lt 15 ]' \
  sh {} \; -ls

결과가 올 바르면 다음을 수행하십시오.

find . -type f -exec sh -c '
  h=$(date -d @$(stat -c %Y "$1") +%-H); [ "$h" -ge 11 ] && [ "$h" -lt 15 ]' \
  sh {} \; -delete

다음은 -ls버전을 사용한 테스트 실행입니다 .

$ touch -d 'Wed Sep 12 11:00:01 EDT 2018' 11am
$ touch -d 'Wed Sep 12 12:00:02 EDT 2018' 12pm
$ touch -d 'Wed Sep 12 15:00:03 EDT 2018' 303pm
$ find . -type f -exec sh -c 'h=$(date -d @$(stat -c %Y "$1") +%-H); [ "$h" -ge 11 ] && [ "$h" -lt 15 ]' sh {} \; -ls
1705096    0 -rw-r--r--   1 user group 0 Sep 12  2018 ./11am
1705097    0 -rw-r--r--   1 user group 0 Sep 12  2018 ./12pm

내가 따랐던 훌륭한 답변을 작성한 Kusalananda에게 감사드립니다. 'find'의 -exec 옵션 이해

우리가주의 하지 원하는 {} +버전을 find우리가 원하는대로, 여기 -exec결과는 당 파일 수, 그래서 시간 범위를 일치 우리 만 삭제 파일.

포함 된 셸 스크립트에는 두 가지 주요 부분이 있습니다. 파일의 "시간"타임 스탬프를 확인한 다음 범위에 따라 성공 또는 실패를 반환합니다. 첫 번째 부분은 그 자체로 두 부분으로 이루어집니다. 변수에는 명령 대체 결과가 할당됩니다. 명령은 완전히 읽어야합니다.

  1. $(stat -c %Y "$1") -- this (second) command-substitution calls stat on the $1 parameter of the embedded shell script; $1 was assigned by find as one of the pathnames it found. The %Y option to the stat command returns the modification time in seconds-since-the-epoch.
  2. date -d @ ... +%-H -- this takes the seconds-since-the-epoch from the above command substitution and asks date to give us the Hours portion of that time; the @ syntax tells date that we're giving it seconds-since-the-epoch as an input format. With the - option in the date output format, we tell GNU date to not pad the value with any leading zeroes. This prevents any octal misinterpretation later.

Once we have the $h Hour variable assigned, we use bash's conditional operator [[ to ask whether that value is greater-than-or-equal to 11 and also strictly less than 15.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

생성 된 XML 파일의 두 번째 줄에 ProcessingInstruction을 삽입하는 방법은 무엇입니까?

분류에서Dev

번들에서 생성 된 파일에 정적 이름을 지정하는 방법은 무엇입니까?

분류에서Dev

0이 포함 된 경우 n 번째 행을 모두 삭제하는 방법은 무엇입니까?

분류에서Dev

Listview의 두 번째 열에 나열된 선택한 파일을 제거하는 방법은 무엇입니까?

분류에서Dev

파일에서 두 번째 줄을 삭제하는 방법은 무엇입니까?

분류에서Dev

.exe 파일 내에서 python으로 작성된 .exe 파일을 삭제하는 방법은 무엇입니까?

분류에서Dev

특정 요일에 생성 된 파일을 제외한 모든 파일을 삭제하는 방법은 무엇입니까?

분류에서Dev

문자의 두 번째 또는 세 번째 발생까지 모든 것을 제거하는 파일의 이름을 바꾸는 방법은 무엇입니까?

분류에서Dev

폴더에 수동으로 생성 된 파일이 삭제되지 않을 수 있음을 알고있는 경우 폴더에서 자동 생성 된 파일을 삭제하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

두 번째 파일에서 정확히 마하 문자열 인 경우 한 파일에서 문자열을 삭제하는 방법은 무엇입니까?

분류에서Dev

특정 기기에서 생성 된 스트림을 삭제하는 방법은 무엇입니까?

분류에서Dev

Python으로 생성 된 목록에서 매달린 \ n을 삭제하는 방법은 무엇입니까?

분류에서Dev

Linux에서 파일을 두 번 열지 않는 방법은 무엇입니까?

분류에서Dev

특정 문자가 두 번째 발생하면 셀에서 문자열의 일부를 삭제하는 방법은 무엇입니까?

분류에서Dev

어제 오후 5시 이후 생성 된 파일을 나열하는 방법은 무엇입니까?

분류에서Dev

두 테이블에서 생성 된 값을 빼는 방법은 무엇입니까?

분류에서Dev

파일 업로드를 통해 생성 된 Github에서 특정 커밋 내역을 삭제하는 방법은 무엇입니까?

분류에서Dev

문자열 내에서 두 번째 발생을 제거하는 방법은 무엇입니까?

분류에서Dev

특정 경로에 생성 된 파일을 감사하는 방법은 무엇입니까?

분류에서Dev

특정 경로에 생성 된 파일을 감사하는 방법은 무엇입니까?

분류에서Dev

파일이 삭제 된 경우에도 탭을 열어 두도록 IntelliJ IDEA를 설정하는 방법은 무엇입니까?

분류에서Dev

한 번에 파일 이름에 접두사를 복사하고 추가하는 방법은 무엇입니까?

분류에서Dev

이름에 ":"이 포함 된 NTFS 파일 시스템 파일을 삭제하는 방법은 무엇입니까?

분류에서Dev

파일 이름에 공백이 포함 된 파일을 삭제하는 방법은 무엇입니까?

분류에서Dev

MediaMuxer에서 생성 된 손상된 Mp4 파일을 복구하는 방법은 무엇입니까?

분류에서Dev

Symfony2의 번들 내에 뷰 파일을 생성하는 방법은 무엇입니까?

분류에서Dev

addEventListener가 두 번째로 호출 될 때 addEventListener 내부에서 사용 된 이전 값을 제거하는 방법은 무엇입니까?

분류에서Dev

Git은 두 번째 빈 파일을 커밋하고 비어 있지 않은 첫 번째 파일을 삭제하지 않는 방법은 무엇입니까?

분류에서Dev

두 번째 LINQ 쿼리없이 제외 된 컬렉션을 가져 오는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    생성 된 XML 파일의 두 번째 줄에 ProcessingInstruction을 삽입하는 방법은 무엇입니까?

  2. 2

    번들에서 생성 된 파일에 정적 이름을 지정하는 방법은 무엇입니까?

  3. 3

    0이 포함 된 경우 n 번째 행을 모두 삭제하는 방법은 무엇입니까?

  4. 4

    Listview의 두 번째 열에 나열된 선택한 파일을 제거하는 방법은 무엇입니까?

  5. 5

    파일에서 두 번째 줄을 삭제하는 방법은 무엇입니까?

  6. 6

    .exe 파일 내에서 python으로 작성된 .exe 파일을 삭제하는 방법은 무엇입니까?

  7. 7

    특정 요일에 생성 된 파일을 제외한 모든 파일을 삭제하는 방법은 무엇입니까?

  8. 8

    문자의 두 번째 또는 세 번째 발생까지 모든 것을 제거하는 파일의 이름을 바꾸는 방법은 무엇입니까?

  9. 9

    폴더에 수동으로 생성 된 파일이 삭제되지 않을 수 있음을 알고있는 경우 폴더에서 자동 생성 된 파일을 삭제하는 가장 좋은 방법은 무엇입니까?

  10. 10

    두 번째 파일에서 정확히 마하 문자열 인 경우 한 파일에서 문자열을 삭제하는 방법은 무엇입니까?

  11. 11

    특정 기기에서 생성 된 스트림을 삭제하는 방법은 무엇입니까?

  12. 12

    Python으로 생성 된 목록에서 매달린 \ n을 삭제하는 방법은 무엇입니까?

  13. 13

    Linux에서 파일을 두 번 열지 않는 방법은 무엇입니까?

  14. 14

    특정 문자가 두 번째 발생하면 셀에서 문자열의 일부를 삭제하는 방법은 무엇입니까?

  15. 15

    어제 오후 5시 이후 생성 된 파일을 나열하는 방법은 무엇입니까?

  16. 16

    두 테이블에서 생성 된 값을 빼는 방법은 무엇입니까?

  17. 17

    파일 업로드를 통해 생성 된 Github에서 특정 커밋 내역을 삭제하는 방법은 무엇입니까?

  18. 18

    문자열 내에서 두 번째 발생을 제거하는 방법은 무엇입니까?

  19. 19

    특정 경로에 생성 된 파일을 감사하는 방법은 무엇입니까?

  20. 20

    특정 경로에 생성 된 파일을 감사하는 방법은 무엇입니까?

  21. 21

    파일이 삭제 된 경우에도 탭을 열어 두도록 IntelliJ IDEA를 설정하는 방법은 무엇입니까?

  22. 22

    한 번에 파일 이름에 접두사를 복사하고 추가하는 방법은 무엇입니까?

  23. 23

    이름에 ":"이 포함 된 NTFS 파일 시스템 파일을 삭제하는 방법은 무엇입니까?

  24. 24

    파일 이름에 공백이 포함 된 파일을 삭제하는 방법은 무엇입니까?

  25. 25

    MediaMuxer에서 생성 된 손상된 Mp4 파일을 복구하는 방법은 무엇입니까?

  26. 26

    Symfony2의 번들 내에 뷰 파일을 생성하는 방법은 무엇입니까?

  27. 27

    addEventListener가 두 번째로 호출 될 때 addEventListener 내부에서 사용 된 이전 값을 제거하는 방법은 무엇입니까?

  28. 28

    Git은 두 번째 빈 파일을 커밋하고 비어 있지 않은 첫 번째 파일을 삭제하지 않는 방법은 무엇입니까?

  29. 29

    두 번째 LINQ 쿼리없이 제외 된 컬렉션을 가져 오는 방법은 무엇입니까?

뜨겁다태그

보관