Linux如何将某个文件复制到当前目录的所有子文件夹中?

命令:

find ./ -maxdepth 1 -type d -exec cp -r path/file {} \;

find是我们很常用的一个Linux命令,但是我们一般查找出来的并不仅仅是看看而已,还会有进一步的操作,这个时候exec的作用就显现出来了。 

exec 解释:

-exec  参数后面跟的是command命令,它的终止是以;为结束标志的,所以这句命令后面的分号是不可缺少的,考虑到各个系统中分号会有不同的意义,所以前面加反斜杠。

{}   花括号代表前面find查找出来的文件名。

使用find时,只要把想要的操作写在一个文件里,就可以用exec来配合find查找,很方便的。在有些操作系统中只允许-exec选项执行诸如l s或ls -l这样的命令。大多数用户使用这一选项是为了查找旧文件并删除它们。建议在真正执行rm命令删除文件之前,最好先用ls命令看一下,确认它们是所要删除的文件。 exec选项后面跟随着所要执行的命令或脚本,然后是一对儿{ },一个空格和一个\,最后是一个分号。为了使用exec选项,必须要同时使用print选项。如果验证一下find命令,会发现该命令只输出从当前路径起的相对路径及文件名。

参考:

https://www.cnblogs.com/peida/archive/2012/11/14/2769248.html

其它查找和替换的命令

Linux 修改磁盘挂载目录的方法

举例从原 挂载目录 /home 更改为 /www ,以下为操作步骤:

#查看当前挂载情况
df -h

#创建新的挂载目录
mkdir /www

卸载已经挂载的目录
umount /home

#挂载新目录
mount /dev/sda1/ /www

#修改 fstab文件实现开机自动挂载,查找 home 替换为 www
vim /etc/fstab

存盘退出

Arch Linux设置开机进入命令行界面或图形界面

Arch Linux默认安装后是命令行界面,但在安装KDE后默认就进入图形界面了,那如何修改默认启动呢?在Arch Wiki有说到:

更改开机默认启动目标

开机启动的目标是 default.target,默认链接到 graphical.target (大致相当于原来的运行级别5)。

用 systemctl 检查当前的默认启动目标:

# 检查当前的默认启动
sudo systemctl get-default

# 修改默认启动为命令行
sudo systemctl set-default multi-user.target

# 修改默认启动为图形界面
sudo systemctl set-default graphical.target

另一个方法是向bootloader添加内核参数:

systemd.unit=multi-user.target (大致相当于运行级别3)
systemd.unit=rescue.target (大致相当于运行级别1)

默认目标顺序

Systemd 根据下面顺序选择 default.target

  1. 上面的内核参数
  2. /etc/systemd/system/default.target 软链接
  3. /usr/lib/systemd/system/default.target 软链接

Arch Linux Wiki: systemd

https://wiki.archlinux.org/title/Systemd