다음 찾기 명령이 있습니다. 저는 Python을 사용하여 이러한 명령을 호출하고 실행하겠습니다. 이러한 명령을 한 번에 실행해야 한다는 요구 사항이 있습니다.
찾기 명령
find /path/to/files/ -type f -mtime +3 -exec rm -f {} \;
find /path/to/files2 -type f -mtime +6 -exec rm -f {} \;
bash에서 이와 같이 실행하면 오류가 발생합니다.찾기: 경로는 "find" 표현식 앞에 와야 합니다.
find /path/to/files/ -type f -mtime +3 -exec rm -f {} \; find /path/to/files2 -type f -mtime +6 -exec rm -f {} \;
하지만 이렇게 실행하면 오류가 발생하지 않습니다.
find /path/to/files/ -type f -mtime +3 -exec rm -f {} \; && find /path/to/files2 -type f -mtime +6 -exec rm -f {} \;
오류가 발생하지 않는 이유를 알고 싶습니다 &&
. 연속 명령을 실행하는 가장 좋은 방법은 무엇입니까 find
?
저 같은 경우에는 아래와 같이 실행해야 합니다. 나는 다음을 수행하는 솔루션을 알고 싶지만 제안에도 열려 있습니다.
cmd1 = 'find ... \; '
cmd2 = 'find ... \; '
cmd3 = 'find ... \; '
# This utilises string concatenation
full_cmd = cmd1 + cmd2 + cmd3
# I need to run them in one call.
# It's hard (not impossible) to change this since it is a part of a bigger code base
python_func_which_runs_bash(full_cmd)
답변1
다음 명령은 &&
명령을 계속 실행하지만 두 번째 명령은 첫 번째 명령이 성공적으로 종료된 경우에만 실행됩니다. 두 번째 명령을 무조건 실행하려면 ;
in을 대신 사용할 수 있습니다.&&
참고하시기 바랍니다,탈출하다 \;
계산되지 않습니다 - 정확하게 이스케이프되므로 쉘은아니요그것을 접속사로 취급하고 에 일반 인수로 전달합니다 find
.
또한보십시오: