방법 1 : 그래픽 파일 브라우저에서 트리보기 사용
귀하의 실제 목표는 각 파일을 선택하고 프롬프트하라는 메시지 를 엄격하게 말하는 것이 아니라고 가정합니다 . 그러나 터미널의 각 파일에 대한 메시지가 표시되도록하려면 아래의 방법 2를 참조하십시오.
대부분의 그래픽 파일 브라우저는 여러 레벨의 디렉토리 계층을 함께 볼 수있는 트리보기를 지원합니다. 개별적으로 또는 파일을 선택한 다음 전체 선택에서 조작하여이보기에서 파일을 복사하거나 이동할 수 있습니다. 이것은 여러 폴더의 파일에서도 작동합니다.
일부 파일 브라우저에서는 트리보기를 활성화하려면 환경 설정 메뉴로 이동해야합니다. MATE 파일 브라우저 인 Caja에서는 목록보기에서 항상 활성화되어 있습니다. 보기 → 목록을 클릭하거나 Ctrl+ 2를 눌러 목록보기로 전환하십시오. 각 디렉토리는 왼쪽에 작은 오른쪽을 향한 삼각형이있어 확장 할 수 있음을 나타냅니다. 폴더를 확장하려면 해당 삼각형을 클릭하거나 →폴더를 선택할 때 (오른쪽 화살표) 키를 누르십시오 . 이 예에서는 하나씩 하나씩 선택하고 대상을 한 번에 드래그합니다.
소스와 대상이 동일한 드라이브에 있다고 가정하면 기본적으로 드래그가 움직입니다. 대신 복사하려면 Ctrl키를 누르고 있습니다.
이론적으로이 방법을 사용할 때 실수를 쉽게 해결할 수 있습니다. 대부분의 파일 브라우저 (Caja 포함)는 배치 작업을 포함한 최근 작업을 취소하기 위해 Ctrl+ Z를 지원하기 때문 입니다. 그러나 나는 그와 운이 혼합되었습니다. 때때로 파일이 잘못된 폴더로 돌아갑니다.
좋은 소식은 대부분 작은 텍스트 문서로 작업하는 것처럼 보이므로 tar
번거 로움없이 먼저 추가 백업을 만들 수 있다는 것입니다. 어떤 방법을 사용하든 관계없이 그렇게하는 것이 좋습니다.
방법 2 : 행동 find
과 명령-ok
find
파일을 찾고 -exec
및 -execdir
작업 을 사용하여 임의의 외부 명령으로 경로를 전달하는 것이 일반적으로 사용 됩니다 . 그러나 find
또한 가지고 -ok
및 -okdir
프롬프트 때마다 전에이 명령을 실행합니다. 각 파일에 대해 터미널에서 실제로 묻는 메시지가 표시되면 이것이 방법이라고 생각합니다.
위에 표시된 것과 동일한 효과를 생성하면 다음과 같습니다.
ek@Gnar:~$ find Texts -xtype f -ok mv -t 'Glorious Destination Folder' {} \;
< mv ... Texts/Robert Frost/New Hampshire.pdf > ? y
< mv ... Texts/Robert Frost/In The Clearing.pdf > ? n
< mv ... Texts/Helen Keller/The Story of My Life.pdf > ? y
< mv ... Texts/Saki/The Short Stories of Saki.pdf > ? y
< mv ... Texts/Jane Austen/Sense and Sensibility.pdf > ? n
< mv ... Texts/Jane Austen/Pride and Prejudice.pdf > ? y
< mv ... Texts/Richard Connell/The Stolen Crime.pdf > ? n
< mv ... Texts/Richard Connell/The Most Dangerous Game.txt > ? y
< mv ... Texts/Mary Wollstonecraft Shelley/Mathilda.epub > ? n
< mv ... Texts/Mary Wollstonecraft Shelley/Frankenstein: Or, The Modern Prometheus.pdf > ? y
< mv ... Texts/W. E. B. Du Bois/The Souls of Black Folk.pdf > ? n
< mv ... Texts/W. E. B. Du Bois/Darkwater: Voices from within the Veil.htm > ? y
Texts
소스 디렉토리 (원하는 .
경우 cd
)와 Glorious Destination Folder
실제 대상 디렉토리로 바꿉니다 .
이것은 파일 당 하나의 명령을 실행합니다. 달리 -exec
하고 -execdir
, -ok
그리고 -okdir
지원하지 않는 +
대신에 \;
명령의 동일한 호출에 여러 FOUND 경로를 통과 할 수 있습니다. 따라서 의 형식 을 사용할 필요 가 없습니다 . 난 둘 다,하지만, 어쨌든 일을 제안 일반적 으로 프롬프트가 더 그들에 대해 메시지를 표시하고있는 명령처럼, 그래서 특히이 상황에서.-t dest
mv
find
해당 명령이 작성 될 find
때 궁극적으로 일반 파일을 가리키는 기호 링크가 발견 되면 해당 명령 (대상이 아닌 링크)이 무시되지 않고 이동됩니다. 실제로 하나의 일반 파일 만 조작하려면 -type f
대신을 사용하십시오 -xtype f
.
당신이 script
실수를했을 때 무슨 일이 있었는지 알아낼 수 있도록 세션 에서 이것을하고 싶을 수도 있습니다 . 그러나 다시 백업을하지 않아도됩니다.
방법 3 : 매니페스트 생성 및 편집
적어도 파일 이름에 개행 문자가없는 한 간단한 find
명령을 사용하여 매니페스트 (이 경우 잠재적으로 관심이있는 파일의 이름을 나열하는 파일) 를 생성하는 것으로 시작할 수 있습니다 . :
find Texts -xtype f >manifest
대체 manifest
어떤으로는 파일처럼 이름이 고려 목록 파일을 (그리고 그에 따라 나머지 방향을 조정).
위와 같이 대체 Texts
할 수있는, 실제 소스 디렉토리와 .
당신이 한 경우 cd
그것을 '라합니다. 그러나 Texts
상대 경로 인 경우 (포함하는 경우 포함 .
) 실제로 이동을 수행 할 때 나중에 같은 위치에 있어야합니다.
해당 find
명령을 실행 한 후 manifest
텍스트 편집기에서 엽니 다 . 이 수 nano
, vim
, emacs
, gedit
, pluma
, 등 편집기에서 밖으로 코멘트 이름은 당신이 파일을하는 줄 하지 않는 를 배치하여 이동하려는 #
이들의 시작 부분에. 일부 편집기는 파일이 주석이있는 형식으로 인식되지 않는 경우에도 해당 행을 다르게 강조 표시합니다. 그러나 대부분은 그렇지 않으며, 이런 식으로 제안하는 실제 이유는 인간으로서 구성 파일 (및 아마도 소스 코드)에서 줄을 주석 처리 한 경험이 있기 때문입니다. 나는 당신이 라인을 표시하는 것보다이는 경향이보다 직관적 인, 덜 오류라고 생각 합니까 이동하고자합니다.
물론, 이동하고 싶지 않은 파일의 행을 삭제할 수도 있습니다. 주석 처리의 장점은 나중에 수행 한 작업이 나중에 명확하다는 것입니다.
내 예에서, 파일을 편집 한 후의 파일 내용은 다음과 같습니다.
Texts/Robert Frost/New Hampshire.pdf
# Texts/Robert Frost/In The Clearing.pdf
Texts/Helen Keller/The Story of My Life.pdf
Texts/Saki/The Short Stories of Saki.pdf
# Texts/Jane Austen/Sense and Sensibility.pdf
Texts/Jane Austen/Pride and Prejudice.pdf
# Texts/Richard Connell/The Stolen Crime.pdf
Texts/Richard Connell/The Most Dangerous Game.txt
# Texts/Mary Wollstonecraft Shelley/Mathilda.epub
Texts/Mary Wollstonecraft Shelley/Frankenstein: Or, The Modern Prometheus.pdf
# Texts/W. E. B. Du Bois/The Souls of Black Folk.pdf
Texts/W. E. B. Du Bois/Darkwater: Voices from within the Veil.htm
그런 다음 주석 처리 된 행을 필터링 grep
하고 결과를 파이프하여 xargs
전달할 수 있습니다 mv
.
grep -Pv '^\s*#' manifest | xargs -d '\n' mv -t 'Glorious Destination Folder'
위와 같이 Glorious Destination Folder
실제 대상 이름으로 바꿉니다. 그게 다야; 파일이 이동되었습니다. 원하는 경우 먼저 실행될 명령을보기 echo
전에 미리 쓸 수 있습니다 mv
.
명령이 작동하는 방식은 다음과 같습니다.
grep
명령어 출력 라인은 manifest
그 하지 ( -v
) (시작 ^
옵션 (사용)을 *
) 공백 ( \s
리터럴 하였다) #
캐릭터. -P
플래그 (가능하게하는 정규 표현식의 방언으로 PCRE를 선택 \s
나는 기존보다 더 읽을 생각한다 [[:space:]]
).
xargs
명령 (의 출력 인 입력 분할 grep
개행 말단 필드 (로)를 -d '\n'
한 후,) 명령의 끝 부분에 개별 인자로 (종단 개행없이) 각 필드 풀칠 mv -t 'Glorious Destination Folder'
이 실행.
-ok
IMHO 최고의 답변