파티에 조금 늦었 어
마이그레이션하기 전에 수천 개의 작은 파일로 디렉토리를 압축하는 데 아래 형식을 사용합니다. 명령 안에 작은 따옴표가 필요하지 않으면 작동합니다.
약간의 수정으로 누군가에게 유용 할 것이라고 확신합니다. Cygwin
(바분) 에서 테스트
find . -maxdepth 1 ! -path . -type d -print0 | xargs -0 -I @@ bash -c '{ tar caf "@@.tar.lzop" "@@" && echo Completed compressing directory "@@" ; }'
find .
여기 찾기
-maxdepth 1
하위 디렉토리로 이동하지 마십시오
! -path .
제외합니다. / 현재 디렉토리 경로
-type d
만 디렉토리와 일치합니다.
-print0
null 바이트로 분리 된 출력 \ 0
| xargs
xargs로 파이프
-0
입력이 널로 분리 된 바이트입니다.
-I @@
자리 표시자는 @@입니다. @@을 입력으로 바꿉니다.
bash -c '...'
Bash 명령 실행
{...}
명령 그룹화
&&
이전 명령이 성공적으로 종료 된 경우에만 다음 명령을 실행 (종료 0).
결승 ;
은 중요합니다. 그렇지 않으면 실패합니다.
산출:
Completed compressing directory ./Directory1 with meta characters in it
Completed compressing directory ./Directory2 with meta characters in it
Completed compressing directory ./Directory3 with meta characters in it
2018 년 7 월 업데이트 :
해킹과 장난을 좋아한다면 흥미로운 것이 있습니다.
echo "a b c" > a.txt
echo "123" >> a.txt
echo "###this is a comment" >> a.txt
cat a.txt
myCommandWithDifferentQuotes=$(cat <<'EOF'
echo "command 1: $@"; echo 'will you do the fandango?'; echo "command 2: $@"; echo
EOF
)
< a.txt xargs -I @@ bash -c "$myCommandWithDifferentQuotes" -- @@
산출:
command 1: a b c
will you do the fandango?
command 2: a b c
command 1: 123
will you do the fandango?
command 2: 123
command 1: ###this is a comment
will you do the fandango?
command 2: ###this is a comment
설명 :
- 하나의 라이너 스크립트를 작성하고 변수에 저장
- xargs
읽어 a.txt
하고 실행하는 그것을 bash
스크립트
- @@
확인 전체 라인이 통과 될 때마다한다
- 퍼팅 @@
후 --
확인합니다 @@
에 위치 매개 변수 입력으로 촬영 bash
명령이 아닌 bash
시작 OPTION
, 즉, 추천 -c
자체하는 수단run command
--
마법, 그것은 즉, 다른 많은 것들, 작동 ssh
도,kubectl