나는 수천 개의 디렉토리를 가지고 있는데, 모두 이 형식을 가지고 있습니다.
/var/www/vhosts/[USERNAME].company.com/conf/
그리고 x.txt라는 파일이 있는데 그 내용은 다음과 같아야 합니다
[USERNAME] and some static text...
그래서 dir /var/www/vhosts/*/conf/를 수행하면 파일을 복사해야 하는 모든 디렉토리를 얻을 수 있지만 [USERNAME]을 가져와서 넣는 방법을 모르겠습니다. 내가 복사해야 할 그 파일.
모든 제안을 환영합니다. 이 환경에서는 쉘 스크립팅만 사용할 수 있습니다.
감사해요,
답변1
cd /var/www/vhosts && for d in */; 하다 사용자=${d%%.*} echo "$user 어쩌고 저쩌고" > "${d}/conf/x.txt" 완료
...당신이 원하는 것을 거의 얻을 수 있을 것입니다.
답변2
Dennis와 Mike는 ${dir}을 인용하고 있는지 확인합니다. 공백이 있는 디렉토리가 있으면 일부 문제가 발생할 수 있습니다.
echo "$user and some static text..." > "${dir}/conf/x.txt"
이식성을 위해 사용자 이름을 찾는 데 "${d%%.*}"를 사용합니다.
답변3
이를 수행하는 또 다른 방법은 다음과 같습니다.
cd /var/www/vhosts &&
find -maxdepth 1 -mindepth 1 -type d -print0 |
while read -d '' -r dir
do
user=$(basename "$dir" .company.com)
echo "$user and some static text..." > "${dir}/conf/x.txt"
done