최근에 내 노트북에 Linux Mint 17을 설치했습니다. 저는 이전에 Windows 7을 사용했고 모든 데이터를 외장 하드 드라이브에 백업했습니다. Windows 7은 모든 백업 데이터를 대규모 .zip 폴더에 저장합니다. 내 문제는 다음과 같습니다. PATH 에 있는 내 음악이 포함된 폴더만 추출하고 싶습니다 C:\...\Username\Music...
. 따라서 음악 디렉터리의 터미널을 사용하여 외장 하드 드라이브에서 내 홈 폴더로 이러한 파일을 추출하는 방법을 찾으려고 합니다. 나는 아직 터미널 사용법을 배우는 중인데, 내가 찾은 것은 다음과 같다.
for file in *.zip; do unzip -c "$file" -d "/~/Music" | grep "\Username\Music"; done
그것은 나에게 출력을 제공합니다 :
caution: not extracting; -d ignored
그것을 제거했을 때 -d
작동했지만(글쎄, 작동하는 것처럼 보였습니다. 잠시 동안 실행되었습니다) 결국 이상한 출력을 얻었습니다.
62;9;c62;9;c62;9;c62;9;c
압축이 풀린 것으로 추정되는 음악을 검색했지만 찾을 수 없습니다. 누구든지 내 목표를 달성할 수 있는지, 어떻게 달성할 수 있는지 말해 줄 수 있나요? 외장 하드 드라이브의 음악 파일을 음악 폴더로 추출하고 싶습니다.
답변1
unzip 플래그는 다음을 -c
의미합니다.stdout/screen으로 파일 추출, 따라서 실제로 디스크에 파일이 기록되지 않으므로 이 -d
옵션은 의미가 없습니다. 또한 터미널에 표시되는 이상한 문자를 설명합니다. 아마도 당신은 -C
(대소문자를 구분하지 않는 일치 사용) 수정자?
grep
아마도 당신이 원하는 것은 다음을 사용하는 대신에 제공하는 것입니다.처리할 프로필 구성원의 선택적 목록/
zip 파일 다음: zip 파일의 원본이 Windows 시스템인 경우에도 Unix 스타일 경로 구분 기호를 사용해야 할 수 있습니다.
마지막으로 "/~/Music"은 문자 그대로의 절대 경로로 해석될 수 있습니다. ~/Music/
또는 "$HOME/Music/"
공백이 있는 대상 디렉터리로 수정하기가 더 쉽습니다."$HOME/My Music/"
unzip -C "$file" '*/Username/Music/*' -d "$HOME/Music/"
그러나 이로 인해 유사한 폴더 구조가 발생하여 ~/Music/Username/Music/somefile
원하는 것이 아닐 수도 있습니다. AFAIK는 unzip
주요 디렉토리 구성 요소를 제거하는 일부 구현만큼 유연성이 없지만 수정자를 tar
살펴보고 싶을 수도 있습니다 -j
.