
현재 해당 디렉토리에 있지 않을 때 특정 디렉토리에서 특정 파일을 복사할 수 있는 방법이 있습니까?
예를 들어, 파일을 복사하는 쉘 스크립트를 작성 중입니다.
cp \
/some/long123/random/directory/somewhere13/composer.json \
/some/long123/random/directory/somewhere13/composer.lock \
/some/long123/random/directory/somewhere13/composer.phar \
/some/long123/random/directory/somewhere13/gulpfile.js \
/some/long123/random/directory/somewhere13/index.php \
/some/long123/random/directory/somewhere13/package-lock.json \
/var/www/api
그러나 나는 이것이 매우 읽기 어려워 보인다고 생각합니다. 나는 다음과 같은 것을 더 하고 싶습니다:
cp \
/some/long123/random/directory/somewhere13/composer.json \
composer.lock \
composer.phar \
gulpfile.js \
package-lock.json \
/var/www/api
"/some/long123/random/directory/somewhere13"은 절대 변경되지 않습니다.
첫 번째 예보다 더 깔끔한 것이 있나요?
답변1
쉘 버팀대 확장을 사용할 수 있습니다.
cp /some/long123/random/directory/somewhere13/{composer.{json,lock,phar},gulpfile.js,index.php,package-lock.json} /var/www/api
쉘 변수를 사용할 수 있습니다.
src=/some/long123/random/directory/somewhere13 cp $src/composer.{json,lock,phar} $src/gulpfile.js $src/index.php /var/www/api
Bash 배열을 사용할 수 있습니다.
paths=( $src/composer.{json,lock} $src/gulpfile.js $src/index.php ) cp "${paths[@]}" /var/www/api
위의 항목을 모두 결합할 수 있습니다.
매번 개별 파일을 선별하지 않는 완전히 다른 배포 프로세스를 사용할 수 있습니다
git checkout
.
답변2
(
cd /some/long123/random/directory/somewhere13
cp composer.json composer.lock composer.phar gulpfile.js index.php package-lock.json /var/www/api
)