나는 거의 400개의 파일이 있는 디렉토리를 가지고 있고 내가 작성 중인 bash 스크립트의 단일 변수에 모든 .txt 파일을 할당하고 싶습니다. 그러나 나는 그것을 어떻게 해야 할지 잘 모르겠습니다. 나는 해당 파일의 내용이 아니라 파일 이름 자체에만 관심이 있습니다.
답변1
이름을 원할 경우 배열에 할당하는 것이 가장 좋습니다.
names=( *.txt )
내용을 원하신다면
contents="$( cat *.txt )"
답변2
이런 일을 해보세요. 이 단일 라이너는 폴더 .txt
의 모든 파일 에 대한 배열을 생성합니다./root/tmpdir
[root@localhost ~]# export LIST=() ; for file in `find /root/tmpdir -name *.txt -exec readlink -e '{}' \;` ; do LIST+=($file) ; done
[root@localhost ~]# echo ${LIST[*]}
/root/tmpdir/newdir/file.txt /root/tmpdir/file.txt
[root@localhost ~]#
또는 다음으로 구분된 파일 이름을 포함하는 변수를 생성할 수도 있습니다 ,
.
[root@localhost ~]# export LIST; for file in `find /root/tmpdir -name *.txt -exec readlink -e '{}' \;` ; do LIST=$LIST$file, ; done
[root@localhost ~]# echo $LIST
/root/tmpdir/newdir/file.txt,/root/tmpdir/file.txt,
추신
두 예제 모두 콘텐츠가 아닌 파일 확장자를 찾습니다 .txt
. 또한 이 찾기는 재귀적인 찾기이므로 인수를 변경하여 한 폴더 내에서만 검색하도록 할 수 있습니다.