파일 이름을 파일에 쓰기

파일 이름을 파일에 쓰기

디렉토리에는 X.txt, Y.txt, Z.txt파일이 있습니다. 이 파일 이름을 다음과 같은 파일로 옮기고 싶습니다.

Out_file.txt
X.txt
Y.txt
Z.txt

이를 달성하기 위한 유닉스 명령이 있습니까?

답변1

ls >> Out_file.txt

물론, 해당 폴더에 있을 때...

답변2

이것은 매우 간단한 단계입니다. "ls"의 출력을 파일로 리디렉션하기만 하면 됩니다.

ls -1 >> file.txt

답변3

이 문제를 해결하는 또 다른 옵션은 다음과 같습니다.

ls | tee Out_File.txt

답변4

find나는 OP의 문제와 많은 유사한 목표에 대한 좋은 선택이라고 생각합니다.

  • 재귀 및 관련 파일 사양은 다음과 같습니다."무료", 따라서 이 명령은 사용자의 현재 디렉터리나 그 아래에 있는 모든 파일 목록을 수집 find하고 해당 목록을 다음으로 리디렉션합니다..txtOut_file.txt

    find -name \*.txt > Out_file.txt
    

    출력은 한 줄에 하나의 파일 형식입니다 ./filename.txt.

  • 출력에 기본 파일 이름(디렉토리 지정 없음)만 필요한 경우 find(최대버전)에는 다음과 같은 옵션이 내장되어 있습니다 printf.

    find -name \*.txt -printf "%f\n" > Out_file.txt
    

    출력은 한 줄에 하나의 파일 형식입니다 filename.txt.

  • 전체 재귀가 필요하지 않은 경우(또는"제한된 재귀"필수) 다음 maxdepth옵션을 사용할 수 있습니다.

    find -maxdepth 1 -name \*.txt -printf "%f\n" > Out_file.txt
    

    이 출력은 여기에 있는 다른 많은 답변과 동일한 형식이지만 반드시 알파벳 순서일 필요는 없습니다. 알파벳 순서가 필요한 경우 find출력을 파이프할 수 있습니다 sort.

    find -maxdepth 1 -name \*.txt -printf "%f\n" | sort > Out_file.txt
    
    X.txt  
    Y.txt  
    Z.txt  
    
  • 내가 가장 유용하다고 생각하는 버전은 다음과 같습니다.

    find $(pwd) -name \*.mp3 > FullPlaylist.txt
    

    다음과 결합할 수 있는 음악 파일(예: mp3 인코딩)의 전체 재생 목록을 만들 수 있습니다.mpg321

관련 정보