for i in `find $1 –name *.c -print` do tar rvf back.c $i 2>/dev/null done
时间: 2024-05-26 09:19:00 浏览: 153
这是一个简单的 Shell 脚本,目的是将指定目录下所有后缀为 .c 的文件打包到 back.c 中。具体解释如下:
- $1 表示脚本执行时第一个参数传入的目录路径。
- find 命令会在该目录下查找所有符合条件的文件,-name 指定查找文件名以 .c 结尾的文件,-print 表示输出查找到的文件路径。
- for 循环遍历 find 命令查找到的所有文件,将文件添加到 back.c 打包文件中。tar 命令的选项 rvf 表示将文件添加到 tar 包中,2>/dev/null 表示将错误输出重定向到 /dev/null,即不输出错误信息。
需要注意的是,如果 back.c 文件不存在,tar 命令会自动创建该文件。如果 back.c 文件已经存在,tar 命令会将新的文件添加到该文件中。如果需要每次打包都生成新的文件,可以使用选项 cvf 替换 rvf。
相关问题
* 5 * * * rm -rvf rm -rvf /var/spool/mail/root 时怎么执行的
在Linux或Unix系统中,`rm -rvf` 是一个命令,用于删除文件或目录("r" 表示递归删除,"v" 表示详细模式,"f" 表示强制删除,即使文件被其他进程占用也会删除)。当你看到连续三个 `rm -rvf` 时,它们的执行顺序如下:
1. 第一个 `rm -rvf`:尝试删除 `/var/spool/mail/root` 目录及其所有内容。如果该目录存在并且用户有适当的权限,这个命令将删除其中的所有文件和子目录。
2. 第二个 `rm -rvf`:再次尝试删除 `/var/spool/mail/root`。如果上一步没有清除所有内容,它还会继续删除。
3. 第三个 `rm -rvf`:最后再做一次删除操作,同理。
然而,`/var/spool/mail/root` 往往是一个敏感目录,包含用户的邮件和其他重要数据,直接运行这个命令会永久性地删除这些信息,除非有非常明确的理由并确保用户没有备份这些邮件。
#!/usr/bin/env bash echo "此脚本用于yum 安装mysql" if [[ $UID -ne 0 ]];then echo "使用root 执行此脚本" exit 1 fi if [[ $# != 1 ]];then echo "Usage script (5.5|5.6|5.7|8.0)" exit 123 fi echo "清理环境" systemctl stop mysqld mariadb &>/dev/null yum erase -y `rpm -qa |grep mariadb` 2>/dev/null yum erase -y `rpm -qa |grep mysql` 2>/dev/null rm -rvf /etc/my.cnf /var/lib/mysql /var/log/mysql* userdel -rf mysql &>/dev/null ping -w3 www.baidu.com &>/dev/null if [[ $? -eq 0 ]];then yum install -y wget yum-utils &>/dev/null if [[ $? -ne 0 ]];then echo "yum 配置错误" exit 110 fi yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm yum clean all yum makecache fast else echo "网络错误" exit 22 fi case $1 in 5.5) yum-config-manager --disable mysql80-community yum-config-manager --enable mysql55-community ;; 5.6) yum-config-manager --disable mysql80-community yum-config-manager --enable mysql56-community ;; 5.7) yum-config-manager --disable mysql80-community yum-config-manager --enable mysql57-community ;; 8.0) : ;; *) yum repolist all |grep mysql echo "其他版本可自行选择下载并配置" exit 13 ;; esac sleep 2 yum -y install mysql-community-server systemctl start mysqld echo "启动成功,初始密码如下(mysql5.7前版本没有初始密码)" grep -o 'root@localhost.*' /var/log/mysqld.log echo "安装完成" 优化以上这段脚本
这段脚本是用于在 Linux 系统上使用 yum 安装 MySQL 数据库的。脚本首先清理环境,停止已经运行的 MySQL 或 MariaDB 服务,并删除相关的文件和用户。然后通过检测网络连接状态,安装必要的工具和 MySQL 的 yum 源。根据用户指定的版本号,选择对应的 yum 源,并使用 yum 安装 MySQL。最后启动 MySQL 服务,并输出初始密码。这个脚本执行前需要以 root 用户身份执行,并且需要传递 MySQL 版本号作为参数。
阅读全文