다음과 같이 여러 개의 rar 파일이 저장되어 있습니다.
/torrents/televisionshowS01E0$X/nameoftelevisionshow.rar
여기서 $X는 변수 ={0,1,2,...,12}입니다.
단일 명령을 사용하여 단일 출력 디렉터리( )로 추출하고 싶습니다 /publicshare/
.
지금까지 내가 가진 것은 다음과 같습니다.
for i in find /torrents/televisionshowS01*/ -name *.rar; do unrar x "$i" /publicshare/;done
하지만 다음과 같은 결과가 나타납니다.
Cannot open /torrents/televisionshowS01E01/.rar
No such file or directory
No files to extract
그러나 find /torrents/televisionshowS01*/ -name *.rar는 올바른 경로를 반환합니다.
답변1
아, 다른 사람들의 bashscript를 보면서 find 명령 주위에 백틱이 있어야 한다는 것을 깨달았습니다. 그렇게,
for i in `find /torrents/televisionshowS01*/ -name *.rar`; do unrar x "$i" /publicshare/; done
그런 다음 명령은 내가 원하는 대로 작동했습니다. 하지만 아직 정확히 왜 그런지는 잘 모르겠습니다. 나는 그들이 수학에서 괄호와 같은 방식으로 작동한다고 가정합니다. 분명히 이번에는 효과가 있었지만 모범 사례로서 백틱을 넣어야 합니까 unrar x "$i" /publicshare/
?
감사해요