한 줄에 여러 개의 찾기 명령을 실행하는 방법은 무엇입니까?

한 줄에 여러 개의 찾기 명령을 실행하는 방법은 무엇입니까?

다음 찾기 명령이 있습니다. 저는 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.

또한보십시오:

관련 정보