프로그래밍 세계에 완전히 입문한 제가 처음으로 올리는 글입니다. 기본적으로 UNIX 강좌를 수강하고 있는데 홈 디렉터리에 있는 일반 파일의 크기를 확인하고 크기가 1KB 이상인 파일을 찾은 다음 압축 파일로 백업해야 하는 과제가 있습니다. . 압축 파일에 확장자 .bak를 사용한 다음 정리해야 합니다. 지금까지 나는 이것을 가지고 있습니다 :
find . -maxdepth 1 -type f -size +1k -exec gzip -k -S.bak'{}'\;-exec cp'lab4.bak'/IFT383ss16/Labs/ \;
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]
여기서 도움이나 조언을 얻을 수 있는지 알고 싶었나요?
답변1
제가 보기에는 당신이 공백 문자에 인색한 것 같습니다.
{}
앞, 앞, 뒤, 뒤에 \;
공백이 필요합니다. 작은 따옴표도 필요하지 않습니다.cp
'lab4.bak'
{}
두 번째 -exec ...
는-exec cp {}.bak /IFT383ss16/Labs/ \;
이 시도:
find . -maxdepth 1 -type f -size +1k \
-exec gzip -k -S.bak {} \; \
-exec cp {}.bak /IFT383ss16/Labs/ \;
이것들은 모두 한 줄에 배치될 수 있습니다. 나는 \
더 읽기 쉽게 만들기 위해 처음 두 줄의 끝에 s를 사용했습니다. (셸은 다음 줄의 연속으로 공백이 아닌 마지막 문자로 a가 있는 줄을 읽습니다.) 줄 끝에 있는 s를 제거하고 직접 줄을 연결하면 \
한 줄에서도 동일한 효과가 나타납니다 .\
그런데 .bak 파일을 복사하시겠습니까, 아니면 이동하시겠습니까? 어쩌면 mv
대신 사용할 수도 있습니다 cp
.