如何将所有用户的 .bash_history 文件复制到我的主目录中?

cwd*_*cwd 5 command-line scripting bash

我以 root 身份运行。我想将系统的 .bash_history 文件中的所有用户复制到我的主目录中。我可以这样做将所有这些合并为一个,但是我无法分辨谁的命令是谁的。

find /home/ -maxdepth 2 -iname ".bash_history" -type f -exec cat {} >> ~/combined.txt \;
Run Code Online (Sandbox Code Playgroud)

我想将用户名放在文件中的每个文件之间combined.txt,或者我想以这种类型的结构复制文件:

~/user-bash/john.txt
~/user-bash/mary.txt
~/user-bash/bob.txt
~/user-bash/larry.txt
~/user-bash/root.txt
Run Code Online (Sandbox Code Playgroud)

我如何才能完成其中一项(或两项)?

Gil*_*il' 4

在 zsh 中,使用zmv

autoload zmv; alias zcp='zmv -C'  # this can go into your .zshrc
zcp '/home/(*)/.bash_history' '~/user-bash/$1.txt'
Run Code Online (Sandbox Code Playgroud)

在其他外壳中:

for x in /home/*/.bash_history; do
  u=${x%/*}; u=${u##*/}
  cp "$x" ~/user-bash/"$u.txt"
done
Run Code Online (Sandbox Code Playgroud)