![디렉토리의 모든 파일에 대해 "du -sh"를 실행하는 스크립트를 어떻게 작성합니까?](https://linux55.com/image/219687/%EB%94%94%EB%A0%89%ED%86%A0%EB%A6%AC%EC%9D%98%20%EB%AA%A8%EB%93%A0%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EB%8C%80%ED%95%B4%20%22du%20-sh%22%EB%A5%BC%20%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%9E%91%EC%84%B1%ED%95%A9%EB%8B%88%EA%B9%8C%3F.png)
우리 조직에는 사용자 파일 전용 네트워크 공유가 있습니다. 각 사용자는 자신만의 디렉터리를 가지고 있습니다. 공유 공간을 가장 많이 사용하는 사람이 누구인지 알아보려고 합니다. 내 현재 코드는 다음과 같습니다
#!/bin/bash
#Author= x
#Date= 04/28/23
#Desc= x
# Defining the directory
directory="/path/to/directory"
# Creating array to hold the file names
files=()
# Loop through each file in the directory
for file in "$directory"/*; do
# Add the file name to the array
files+=("$file")
done
# Use du to get the size of each file and sort the results by size
du -sh "${files[@]}" | sort -h > output.txt
스크립트를 실행할 때 "du: '$file'에 액세스할 수 없습니다. 해당 파일이나 디렉터리가 없습니다."라는 메시지가 나타납니다. 저는 스크립팅을 처음 접했고 이 문제가 변수를 정의하는 방법과 관련되어 있지만 무엇을 변경해야 할지 잘 모르겠습니다. .
답변1
당신은 일을 지나치게 복잡하게 만들고 있습니다. Giles가 의견에서 지적했듯이:
du -sh /path/to/directory/* | sort -h