나는 MS-DOS 배경에서 오는 불행을 가지고 있지만 적어도 리눅스가 얼마나 강력한 지 감사하게 생각합니다. Linux-Fu를 준비하는 데 노력하고 있지만 DOS로 수행 할 수있는 몇 가지 작업 이 Linux에서 가장 쉽게 달성 할 수 있는 방법이 확실하지 않습니다 .
여러 파일 이름 바꾸기-두 개의 와일드 카드 사용
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\>rename *.txt *.bak
c:\> dir
Directory of c:\
file1.bak
file2.bak
file3.bak
file4.bak
나는 find -exec
여기서 사용할 수 있다는 것을 알고 있지만 더 짧은 구문을 사용할 수 있습니다-아마도 mv
특별한 플래그 또는 구문과 함께? 리눅스의 첫 번째 문제에는 문제가 없어야하기 때문에 두 번째 *
와일드 카드 라고 생각합니다 (즉, 와일드 카드를 사용하여 이름을 바꾸려는 파일을 선택하는 방법을 알고 있습니다)
단일 파일 이름 바꾸기-하나의 와일드 카드 사용
c:\> dir
Directory of c:\
file1.txt
c:\>rename file1.txt *.bak
c:\> dir
Directory of c:\
file1.bak
길고 다루기 힘든 파일 이름을 바꿀 때 특히 유용합니다. 나는 mv file1.txt $1.bak
결국 file1.txt.bak
받아 들일 수있는 것으로 생각 했지만 $1
쉘 명령으로 매개 변수를 인라인으로 참조 할 수 있는지 확실하지 않습니다 . 이 특별한 경우에도 ms-dos *
가 파일 이름의 일부에 대해 일종의 캡처 / 바꾸기 일치로 사용되도록 와일드 카드를 별표로 만드는 방법이 편리합니다 .
와일드 카드를 사용하여 디렉토리 목록 필터링
c:\> dir
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
text.txt
\temp (directory)
c:\> dir file*
Directory of c:\
file1.txt
file2.txt
file3.txt
file4.txt
c:\> t*
Directory of c:\
text.txt
\temp (directory)
그 작업을 수행하는 올바른 구문이 무엇인지 ls
, 또는 가능한지 확실하지 않습니다 . 내가 비슷한 ls t*
것을하면로 시작하는 디렉토리로 돌아갑니다 t
. 내 해결 방법 중 하나를 사용하고있다 find . --max-depth 1 -iname "t*"
처럼 또는 무언가 ls -al | grep t
로 짧고 간단하다 어느 쪽도 아니 - dir t*
입니다.
마지막으로, 나는 긴 명령을 더 짧게 만들기 위해 별칭을 설정할 수 있다는 것을 알고 있지만 때로는 원격 시스템에 연결되어 있거나 작동하기 때문에 이러한 작업을 수행하기 위해 즉시 사용 가능한 linux-fu를 배우고 싶습니다. 새로운 기계에.
그래서 내가 어떻게 할 수 mv
및 ls
파일 같은 방법으로 내가하는 데 사용 dir
및 rename
파일?