Command-Line
從命令行複制並粘貼文件/目錄
而不是使用以下命令:
cp {源文件{{目標文件}
我希望能夠將文件複製到剪貼板中,然後將其粘貼到其他目錄中的其他位置。像這樣的東西:
/usr/local/dir1# cp {源文件}
/usr/local/dir1# cd /usr/local/dir2
/usr/local/dir2# paste
可能嗎?
我認為您應該做一些類似於 GUI 應用程序所做的事情。我這樣做的想法是為複制和粘貼編寫兩個函式,其中複製寫入要復製到臨時文件的文件路徑,粘貼讀取這些路徑並簡單地呼叫
cp
命令。我的實現(要放入.bashrc
文件中)如下所示:function Copy { touch ~/.clipfiles for i in "$@"; do if [[ $i != /* ]]; then i=$PWD/$i; fi i=${i//\\/\\\\}; i=${i//$'\n'/$'\\\n'} printf '%s\n' "$i" done >> ~/.clipfiles } function Paste { while IFS= read src; do cp -Rdp "$src" . done < ~/.clipfiles rm ~/.clipfiles }
可以編寫更好的腳本來實現這個想法,我測試了自己的腳本,它對文件和文件夾非常有效(我不知道如何
xclip
復製文件夾!!)例如:
/usr/local/dir1# Copy a.txt *.cpp /usr/local/dir1# cd /usr/local/dir2 /usr/local/dir2# Paste /usr/local/dir1# Copy *.h *.cpp b.txt subdir1 /usr/local/dir1# cd /usr/local/dir2 /usr/local/dir2# Paste /usr/local/dir1# Copy a.txt b.txt /usr/local/dir1# cd /usr/local/dir2 /usr/local/dir2# Copy c.txt d.txt /usr/local/dir2# cd /usr/local/dir3 /usr/local/dir3# Paste