2011-04-29 2 views
0

자동화 도구로 만든 드롭 릿이 있습니다. 특정 폴더의 응용 프로그램 아이콘에 파일을 놓으면 파일이 이동합니다.자동화 bash unix 스크립트, 단일 파일 인 경우 이동하기위한 입력 파일을 읽거나 다중 아카이브를 감지 한 다음 아카이브를 이동하십시오.

이제 스크립트는 다음과 같습니다

for f in "[email protected]" 
do 
    cp "$f" "volumes/testdrive/testfolder/$(basename "$f")" 
done 

가능 여러 개의 파일 스크립트에 입력 된 경우 감지 한 후 압축 기능을 보관하고 같은 폴더로 이동 명령을 수행하는 경우 궁금하고, 만약 단일 파일이 지정된 폴더에 파일의 정규 복사본을 삭제했습니다.

+0

[http : //apple.stackexchange .com] (http://apple.stackexchange.com). –

+0

'$ f'를 사용할 때주의하십시오. 당신은 그것을 벗어나야합니다. '.../$ (basename '$ f')''이렇게하면 쓸 수있다. – Lynch

답변

0

$#에는 스크립트에 전달 된 인수 수가 포함됩니다.

+0

정말 고마워요! 정확히 내가 필요로하는 것 – Lapaev

2

사용 (구문 해제 방법이 될 수 있음)와 같은 조건, 뭔가 :

if [ $# > 1 ] 
then zip [email protected] > /path/to/location/foo.zip # this line might need to be researched 
else cp [email protected] /path/to/location/`basename [email protected]` 
fi 

다음은 창조의 두서없는 장문을 통해 갈 것 때문에, for 루프와 함께이 작업을 수행 할 수없는 것 선택한 파일의 zip 아카이브 만약 당신이하고 있던 일이 각각 하나씩 움직이고 있다면, 루프를 사용하십시오. 그러나 그것들을 모두 가져 가서 압축하는 것입니다.