한 디렉터리에 동일한 문자/단어가 있는 모든 파일을 다른 디렉터리로 이동합니다.

한 디렉터리에 동일한 문자/단어가 있는 모든 파일을 다른 디렉터리로 이동합니다.
rda@MacBook-Pro X.WORK % ls

Assignment1.file Sec3           moremumbo.woot
FICTION.bak     Test-1.bak      mumble.txt
File-1.bat      Test-1.txt      mumbo.file
FundaOfIT.txt       Text-1.xtxt     myunix.txt
MyFave.txt      Text-2.xtxt     thistle.bak
Sec1            coursetext
Sec2            dooda.text

현재 디렉토리 "X.WORK"에서 문자 "t"로 끝나는 모든 파일을 하위 디렉토리 Sec3으로 이동해야 합니다. mv 명령을 사용하여 모두 함께 이동할 수 있습니까?

지저분해 보이셨다면 죄송합니다. 이것이 첫 번째 질문입니다. 어떤 이유에서인지 코드를 더 멋지고 깔끔하게 만들 수 없습니다.

답변1

다음은 기본 셸 와일드카드입니다.

mv ./*t Sec3/

껍데기(아니요 mv- 이것은매우기억할 가치가 있는 중요한 차이점) 이를 다음과 같이 확장합니다.

mv ./moremumbo.woot ./mumble.txt ./Test-1.txt ./FundaOfIT.txt ./Text-1.xtxt ./myunix.txt ./MyFave.txt ./Text-2.xtxt ./coursetext ./dooda.text Sec3/

(정렬되어 있을 수도 있지만 그 순서가 아닙니다. 정렬 순서를 보려면 echo또는 ls -ld대신을 사용해 보세요)mv

./그런데 꼭 필요하지 않더라도 접두사를 사용하는 것이 좋습니다. 이는 불행하게도 이름이 지정된 파일이 실수로(또는 악의적으로) 옵션으로 해석되는 것을 방지하기 위한 것입니다 mv. 예를 들어, -t디렉터리에 파일 이름이 있으면 *t(접두사 없이 ./) 확장되어 인수 목록에 포함되고 mv파일 이름이 아닌 옵션으로 해석됩니다. GNU의 경우 mv( -t약어--target-directory앞으로그 이후가 아닌 다른 매개변수).

/디렉터리 이름에 후행 문자를 사용하는 것도 좋은 습관입니다. 파일을 디렉터리로 이동하거나 복사(또는 rsync 등)하려고 할 때 실수로 파일을 덮어쓰거나 생성하는 것을 방지합니다.

관련 정보