2014-07-10 2 views
1

나는 bash에 익숙하지 않고 도움이 될만한 사람이다. 마지막으로 생성 된 파일을 새로운 파일과 즉시 복제하는 명령을 만들려고합니다. 지금까지 나는 다음 명령을 내놓았다. 동일한 디렉토리 내에서 찾기, 복사, 이름 바꾸기

find /home/ian/Desktop/TEST/ -type f -mmin -1 -exec echo cp {} /home/ian/Desktop/TEST/ \; 

하지만 파일의 이름을 바꿀 수있는 방법을 찾을 수 없습니다 나는 주위를 둘러 보았다 및 다양한 방법을 시도했지만 아무도 일 것 같았다 한 생활 또는 저

. 나는 복사 된 각 파일에 '_backup'을 추가 할 수 있도록 이름 바꾸기를 제어하려고합니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 죄송합니다,이 같은 기본적인 질문을하는 경우

모든 최고의, 이안

답변

0

당신은 아마 -exec 대신 -execdir를 사용해야합니다 : 이것은 완벽하게 작동

find /home/ian/Desktop/TEST/ -type f -mmin -1 -execdir echo cp \{} \{}_backup \; 
+0

, 당신이 대답하는 모든 사람에게 감사 :

-execdir command ; -execdir command {} + Like -exec, but the specified command is run from the subdirec‐ tory containing the matched file, which is not normally the directory in which you started find. 

다음 명령은 예상대로 작동하는 것 같다. –

+0

TEST_MASTER라는 파일이 있다면 위의 파일을 실행하고 TEST_MASTER_BACKUP과 반대되는 TEST_BACKUP이라는 새 파일을 어떻게 만들 수 있습니까? –

+0

@IanGrey He! 그! _ "질문이 하나 더 있습니다"_ 다른 질문을하면 다음과 같이 보일 것입니다 ... –

0

당신이 a=$(my_command)과 같은 명령의 출력 문자열을 만들 수 있습니다. (My_command는 검색 결과입니다.) 그러면 mv "$a" "$a".backup을 말할 수 있습니다.

0
find /home/ian/Desktop/TEST/ -type f -mmin -1 -exec echo cp {} /home/ian/Desktop/TEST/{}_backup 
관련 문제