文件複製node
經常使用選項python
-i # 覆蓋以前提醒用戶確認 -f # 強制覆蓋目標文件 -r # 遞歸複製目錄 -d # 複製符號連接自己而非其指向的源文件 -a # 遞歸複製目錄,保留文件的全部屬性
示例linux
[root@Bj-1-141 ~]# cp /etc/fstab /tmp/ [root@Bj-1-141 ~]# ls -l /tmp/fstab -rw-r--r-- 1 root root 501 Dec 9 21:19 /tmp/fstab [root@Bj-1-141 ~]# cp -a /etc/fstab /tmp/ cp: overwrite ‘/tmp/fstab’? y [root@Bj-1-141 ~]# ls -l /tmp/fstab -rw-r--r--. 1 root root 501 Dec 4 18:13 /tmp/fstab [root@Bj-1-141 ~]# cp -r /var/log/ /tmp/
移動或重命名文件shell
示例centos
[root@Bj-1-141 tmp]# mv fstab fstab.bak [root@Bj-1-141 tmp]# ls fstab [root@Bj-1-141 tmp]# mv fstab{,.bak} [root@Bj-1-141 tmp]# ls fstab.bak
刪除文件或目錄bash
示例post
[root@Bj-1-141 tmp]# rm -fr log/ [root@Bj-1-141 tmp]# rm -f fstab.bak
bash命令行中命令執行成功返回值爲0,錯誤返回值爲1-255之間的隨機數;centos7
$?:shell中獲取命令的狀態返回值使用$?;echo $?命令行
~ :自動展開爲用戶的家目錄,或指定用戶的家目錄3d
{}:可承載一個逗號分隔的路徑列表,並將其展開爲多個路徑
例如:/tmp/{a,b}至關於/tmp/a , /tmp/b
建立/tmp目錄下的:a_c, a_d, b_c, b_d
[root@Bj-1-141 ~]# mkdir /tmp/{a,b}_{c,d} [root@Bj-1-141 ~]# ll /tmp/ total 4 drwxr-xr-x 2 root root 6 Dec 9 22:07 a_c drwxr-xr-x 2 root root 6 Dec 9 22:07 a_d drwxr-xr-x 2 root root 6 Dec 9 22:07 b_c drwxr-xr-x 2 root root 6 Dec 9 22:07 b_d
建立/tmp/mylinux目錄下的:
/tmp/mylinux/ |-- bin |-- boot | `-- grub |-- dev |-- etc | |-- rc.d | | `-- init.d | `-- sysconfig | `-- network-scripts |-- lib | `-- modules |-- lib64 |-- proc |-- sbin |-- sys |-- tmp |-- usr | `-- local | |-- bin | `-- sbin `-- var |-- lock |-- log `-- run [root@Bj-1-141 ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
文件類型-權限-硬連接次數-屬主-屬組-文件大小-時間-文件名
每一個文件都有三個時間戳(centos7是4個還有一個建立時間):
Access: 2016-12-06 22:03:52.372987896 +0800 # 查看內容就表明最近訪問 Modify: 2015-12-09 17:59:15.000000000 +0800 # 新增或刪除內容就是更改 Change: 2016-12-04 18:13:31.613001987 +0800 # 改動是表示元數據發生改變
[root@Bj-1-141 ~]# stat /etc/issue File: ‘/etc/issue’ Size: 23 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 67109017 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-12-06 22:03:52.372987896 +0800 Modify: 2015-12-09 17:59:15.000000000 +0800 Change: 2016-12-04 18:13:31.613001987 +0800 Birth: -
touch命令:修改文件的時間戳,若是文件不存在則建立一個空文件。
經常使用選項
-c:# 指定的文件路徑不存在時不建立對應的空文件 -a:# 僅修改access時間 -m:# 僅修改modify時間 -t STAMP:# 指定一個時間,將目標文件修改成指定的時間,一般配合-a或者-m使用
[root@Bj-1-141 ~]# stat test.txt File: ‘test.txt’ Size: 13 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 136103861 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-12-06 22:11:57.754537389 +0800 Modify: 2016-12-06 22:11:22.323537042 +0800 Change: 2016-12-06 22:11:22.323537042 +0800 Birth: - [root@Bj-1-141 ~]# touch -a -t 201612092030 test.txt [root@Bj-1-141 ~]# stat test.txt File: ‘test.txt’ Size: 13 Blocks: 8 IO Block: 4096 regular file Device: 803h/2051d Inode: 136103861 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-12-09 20:30:00.000000000 +0800 Modify: 2016-12-06 22:11:22.323537042 +0800 Change: 2016-12-09 20:26:56.383277275 +0800 Birth: -
alias NAME="command" # 定義命令別名 [root@Bj-1-141 ~]# alias cls="clear"
$(COMMAND)或者使用``反引號
[root@Bj-1-141 ~]# current_time=$(date +%Y-%m-%d-%H-%M-%S) [root@Bj-1-141 ~]# echo $current_time 2016-12-09-20-33-25 [root@Bj-1-141 ~]# current_time=`date +%Y-%m-%d-%H-%M-%S` [root@Bj-1-141 ~]# echo $current_time 2016-12-09-20-34-0
[root@Bj-1-141 ~]# touch /var/ltest3data [root@Bj-1-141 ~]# mkdir /var/ltest4data [root@Bj-1-141 ~]# ls -dl /var/l*[0-9]*[[:lower:]] -rw-r--r-- 1 root root 0 Dec 9 09:11 /var/ltest3data drwxr-xr-x 2 root root 6 Dec 9 09:11 /var/ltest4data
[root@Bj-1-141 ~]# touch /etc/6testdata [root@Bj-1-141 ~]# mkdir /etc/7testdata [root@Bj-1-141 ~]# ls -d /etc/[0-9]*[a-z] /etc/6testdata /etc/7testdata
[root@Bj-1-141 ~]# ls -d /etc/[^a-z][a-z]* /etc/6testdata /etc/7testdata
[root@Bj-1-141 ~]# touch /tmp/tfile-$(date +%Y-%m-%d-%H-%M-%S) [root@Bj-1-141 ~]# ll /tmp/tfile-2016-12-09-09-21-44 -rw-r--r-- 1 root root 0 Dec 9 09:21 /tmp/tfile-2016-12-09-09-21-44
[root@Bj-1-141 ~]# cp -rv /etc/p*[^0-9] /tmp/mytest1/ [root@Bj-1-141 ~]# ls /tmp/mytest1 pam.d passwd- plymouth popt.d ppp printcap profile.d python passwd pki pm postfix prelink.conf.d profile protocols
[root@Bj-1-141 ~]# mkdir /tmp/mytest2 [root@Bj-1-141 ~]# cp -rv /etc/*.d /tmp/mytest2/ [root@Bj-1-141 ~]# ls /tmp/mytest2 bash_completion.d dracut.conf.d modprobe.d profile.d rc5.d sudoers.d binfmt.d gdbinit.d modules-load.d rc0.d rc6.d sysctl.d chkconfig.d grub.d my.cnf.d rc1.d rc.d tmpfiles.d cron.d init.d pam.d rc2.d rsyslog.d xinetd.d depmod.d ld.so.conf.d popt.d rc3.d rwtab.d yum.repos.d dnsmasq.d logrotate.d prelink.conf.d rc4.d statetab.d
[root@Bj-1-141 ~]# mkdir /tmp/mytest3 [root@Bj-1-141 ~]# cp -v /etc/[lmn]*.conf /tmp/mytest3 [root@Bj-1-141 ~]# ls /tmp/mytest3 ld.so.conf libuser.conf logrotate.conf mke2fs.conf libaudit.conf locale.conf man_db.conf nsswitch.conf