将所有 .desktop 文件复制到 ~/.local/share/applications/
Copying all .desktop files to ~/.local/share/applications/
我正在尝试编写一个 bash 脚本来将 /nix/store
下的所有 .desktop
个文件复制到 ~/.local/share/applications/
。我对 bash 不是特别擅长,所以我需要帮助。我使用 find
命令查找所有文件。现在我试图在 readarray
:
的帮助下从输出创建一个数组
files=$(find /nix/store -type f -name \*.desktop)
echo $files
x=$(readarray -d 's' <<<$files)
echo $x
echo $files
将打印 find
命令的结果,但是 echo $x
打印一个空行。
#!/usr/bin/env bash
files=$(find /nix/store -type f -name \*.desktop)
readarray array <<<$files
for i in ${array[@]}; do
cp $i ~/.loca/share/applications/
done
或
find /nix/store -type f -name \*.desktop -exec cp {} ~/.local/share/applications/ \;
如果我没记错并且 /nix/store/ 是一个常规目录,这应该可以工作:
cp /nix/store/*.desktop ~/.local/share/applications/
Copying all .desktop files to ~/.local/share/applications/
find /nix/store -type f -name '*.desktop' \
-exec cp -v {} ~/.local/share/applications/ ';'
however the echo $x prints an empty line.
readarray
产生 无输出 。相反,它 存储 参数中的行,代表变量的名称,数组的名称。
readarray -d 's' <<<$files
# ^^^ - stores output in array named s
printf "%s\n" "${s[@]}" # you can print the array s
我正在尝试编写一个 bash 脚本来将 /nix/store
下的所有 .desktop
个文件复制到 ~/.local/share/applications/
。我对 bash 不是特别擅长,所以我需要帮助。我使用 find
命令查找所有文件。现在我试图在 readarray
:
files=$(find /nix/store -type f -name \*.desktop)
echo $files
x=$(readarray -d 's' <<<$files)
echo $x
echo $files
将打印 find
命令的结果,但是 echo $x
打印一个空行。
#!/usr/bin/env bash
files=$(find /nix/store -type f -name \*.desktop)
readarray array <<<$files
for i in ${array[@]}; do
cp $i ~/.loca/share/applications/
done
或
find /nix/store -type f -name \*.desktop -exec cp {} ~/.local/share/applications/ \;
如果我没记错并且 /nix/store/ 是一个常规目录,这应该可以工作:
cp /nix/store/*.desktop ~/.local/share/applications/
Copying all .desktop files to ~/.local/share/applications/
find /nix/store -type f -name '*.desktop' \
-exec cp -v {} ~/.local/share/applications/ ';'
however the echo $x prints an empty line.
readarray
产生 无输出 。相反,它 存储 参数中的行,代表变量的名称,数组的名称。
readarray -d 's' <<<$files
# ^^^ - stores output in array named s
printf "%s\n" "${s[@]}" # you can print the array s