ls -R $pwd > text.txt
위 명령은 다음 txt 파일을 생성합니다.
engagement
groups
solo
text.txt
./engagement:
VAM01427.JPG
_VJR3208.JPG
_VJR3244.JPG
_VJR3281.JPG
./groups:
family
friends
./groups/family:
_VJR3358.JPG
_VJR3376.JPG
_VJR3379.JPG
./groups/friends:
_VJR3404-2.jpg
_VJR3416.jpg
_VJR3456.JPG
./solo:
VAM01381.JPG
VAM01385.JPG
VAM01386.JPG
이 텍스트 파일을 기반으로 mkdir 명령을 사용하여 폴더를 생성해 보았습니다.
명령을 실행할 때: cat text.txt | xargs -L 1 mkdir
이 명령은 중복 폴더를 생성합니다.
질문을 올바르게 작성할 수 없습니다. 누구든지 도와줄 수 있나요?
답변1
디렉토리만 나열하도록 텍스트 파일의 형식을 변경하면 전체 문제가 훨씬 간단해집니다.
find . -type d >directories.txt
그 다음에
while IFS= read -r dir; do mkdir -p "$dir"; done <directories.txt
여기서는 디렉토리 이름에 공백이 포함될 수 있지만 개행 문자는 포함되지 않는다고 가정합니다.
답변2
텍스트 파일에서 원하는 작업($HOME 폴더에 디렉터리 생성)을 수행할 수 있었으므로 cat text.txt | grep ./ | awk -F: '{ print $1}' | xargs -L 1 mkdir
먼저 ./ 줄을 필터링한 다음 끝에 있는 :을 제거하여 폴더를 만듭니다.