확장자가 .7z인 파일과 파일을 추출하는 crontab이 있다고 가정해 보겠습니다. 그런데 이름은 모르고 확장자만 알 수 있는데, crontab에서 추출할 수 있나요?
이것은 내 크론탭입니다:
2 * * * * root cd /var/path_to_directory && 7za x ".7z*"-p'abc'
그러나 이는 작동하지 않으며 다음과 같은 결과가 발생합니다.there is no such archive
어떤 아이디어가 있나요?
답변1
7za
두 개의 매개변수와 를 사용하여 x
명령을 실행 했습니다 .7z*-pabc
. 파일 이름과 -p
옵션은 별도의 매개변수여야 합니다. .7z*
파일 이름 과도 일치합니다.시작.7z
, 로 끝나는 파일 이름 대신 .7z
.
7za x "*.7z" -p'abc'
*.7z
7za
명령에 전달할 수 있다는 사실(또는 더 정확하게는 해당 인수로 의미 있는 작업을 수행한다는 사실)은 해당 명령에만 해당됩니다 . 일반적으로 와일드카드는 셸에 의해 확장되므로 현재 디렉터리에서 파일 foo.7z
만 추출하려면 ; 셸이 인수를 전달 하고 명령 에 작성 해야 합니다. 작동하지만 자체 와일드카드 처리 기능이 있으므로(DOS 소프트웨어의 포트이고 DOS는 와일드카드 처리를 수행하지 않았기 때문에) 를 쓸 수도 있습니다. 여기서 두 번째 인수 는 string 입니다 ..7z
7za x *.7z -p'abc'
x
foo.7z
-p'abc'
7za
7za
7za x "*.7z" -p'abc'
7za
*.7z