例如,我使用find
命令find /usr/share/icons -iname 'foxitreader*'
查找文件:
/usr/share/icons/hicolor/32x32/apps/FoxitReader.png
/usr/share/icons/hicolor/48x48/apps/FoxitReader.png
/usr/share/icons/hicolor/64x64/apps/FoxitReader.png
/usr/share/icons/hicolor/128x128/apps/FoxitReader.png
/usr/share/icons/hicolor/16x16/apps/FoxitReader.png
并且我想将xargs
它们复制到.local/share/icons/
,并且目录中icons
具有相同的子目录结构,即:
└── hicolor
├── 16x16
│ └── apps
│ ├── 1B94_WScript.0.png
│ ├── 1CD8_rundll32.0.png
│ ├── 1E64_notepad.0.png
│ ├── 2402_msiexec.0.png
│
├── 24x24
│ └── apps
│ ├── 6C56_Timwp.0.png
│ └── FoxitReader.png
├── 256x256
│ └── apps
│ ├── 1E64_notepad.0.png
│ ├── 2402_msiexec.0.png
│ ├── 2EF4_wordpad.0.png
├── 32x32
│ └── apps
│ ├── 1B94_WScript.0.png
│ ├── 1CD8_rundll32.0.png
│ ├── 1E64_notepad.0.png
└── 48x48
└── apps
├── 1CD8_rundll32.0.png
├── 1E64_notepad.0.png
├── 2402_msiexec.0.png
我只想复制我找到的文件,而不是整个目录结构,所以我该如何将这些文件复制到相应的目录中,就像这样:
/usr/share/icons/hicolor/32x32/apps/FoxitReader.png
到.local/share/icons/32x32/apps/FoxitReader.png
,等等。
并且该icons
目录已经有这些子目录,并且它不是空的,所以你不能只用cp
合并它们,我用它find
来找到文件,并想用它xargs
一次复制它们,而不是手动复制多次。
答案1
您可以通过启用扩展在 bash 中执行此操作通配符。
shopt -s extglob
然后使用--parents
的选项cp
。
因此,请前往/usr/share/icons/hicolor/
并执行以下操作:
cp -R --parent {128x128,32x32}/apps ~/.local/share/icons/
修改其中的目录名称{}
以满足您的需要。
例如:
ron@ron:~$ tree dir1/ # Destination before copying
dir1/
├── 128x128
│ └── apps
├── 16x16
│ └── apps
├── 32x32
│ └── apps
└── 48x48
└── apps
karthik@4736Z:~/dir2$ ls hicolor/ # Source structure
128x128 22x22 32 42x42 512x512 72x72 icons scalable
16x16 24x24 32x32 48 64 8x8 icon-theme.cache symbolic
192x192 256x256 36x36 48x48 64x64 96x96 index.theme
ron@ron:~/dir2$ tree hicolor/ | head -n 6
hicolor/
├── 128x128
│ ├── actions
│ ├── animations
│ ├── apps
│ │ ├── amazon-store.png
ron@ron:~/dir2/hicolor$ cd hicolor/
ron@ron:~/dir2/hicolor$ cp -R --parent {128x128,32x32}/apps ../../dir1/
ron@ron:~/dir2/hicolor$ tree ../../dir1/ # Destination after copying
../../dir1/
├── 128x128
│ └── apps
│ ├── amazon-store.png
│ ├── chromium-browser.png
│ ├── credentials-preferences.png
│ ├── deluge.png
│ ├── display-im6.q16.png
│ ├── libreoffice-base.png
│ ├── libreoffice-calc.png
│ ├── libreoffice-draw.png
│ ├── libreoffice-impress.png
│ ├── libreoffice-main.png
│ ├── libreoffice-math.png
│ ├── libreoffice-startcenter.png
│ ├── libreoffice-writer.png
│ ├── ubuntuone-music.png
│ ├── ubuntusoftware.svg
│ ├── vivaldi.png
│ ├── vlc.png
│ └── vlc-xmas.png
├── 16x16
│ └── apps
├── 32x32
│ └── apps
│ ├── aim.png
│ ├── baobab.png
│ ├── bluetooth.png