Shell:批量压缩某个路径下的子目录
脚本内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
#!/bin/bash # ################### # Description: # In this Shell, you can Choose a Path # Then, this shell will tar each sub-directory in this Path. # ################### # =============== # Variable # =============== str_path='/tmp' # =============== # Function # =============== # function: display_time() # $1 / Message display_time() { # variable f_message=$1 # do echo "["`date +'%Y-%m-%d_%H:%M:%S'`"]: "${f_message} } # =============== # main() # =============== for each in `ls -ltr ${str_path} | grep "^d" | awk '{print $9}'` do display_time "================" display_time "Current Directory: [${each}]" source_directory_full_path=${str_path}/${each} target_file_tar_full_path=${str_path}/${each}.tar.gz display_time "------" display_time "source: [${source_directory_full_path}]" display_time "target: [${target_file_tar_full_path}]" display_time "------" display_time "Tar: Begin,..." tar -czvf ${target_file_tar_full_path} ${source_directory_full_path} --remove-files display_time "Tar: Finished,..." display_time "" done # ################### # Finished. # ################### |
执行效果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
[root@oracle ~]# cd /tmp [root@oracle tmp]# ls -ltr total 0 drwx------ 3 root root 17 Dec 5 17:29 systemd-private-e87d65304b1c48bfb95851adf96dfd82-chronyd.service-eg1W7o drwx------ 2 root root 6 Dec 5 17:29 vmware-root_9183-3844378752 drwx------ 3 root root 17 Dec 8 00:04 systemd-private-2f6e41e4934643108d3e1a9cda48283a-chronyd.service-4Lf6qd drwx------ 2 root root 6 Dec 8 00:04 vmware-root_9132-3092397204 drwx------ 3 root root 17 Dec 8 17:32 systemd-private-a55a1c6ad95c4575989c17fe0063c25c-chronyd.service-etDJOQ drwx------ 3 root root 17 Dec 13 01:29 systemd-private-ad60d1195e2548ee8770d6eb198c8a36-chronyd.service-V97094 drwx------ 2 root root 6 Dec 13 01:29 vmware-root_9153-3844903065 drwx------ 3 root root 17 Dec 13 18:00 systemd-private-09d585b418934741b5c1e13ed2db4838-chronyd.service-rs8WYk drwx------ 2 root root 6 Dec 13 18:00 vmware-root_9160-2832797001 [root@oracle tmp]# [root@oracle ~]# sh 2.sh [2021-12-14_00:14:37]: ================ [2021-12-14_00:14:37]: Current Directory: [systemd-private-e87d65304b1c48bfb95851adf96dfd82-chronyd.service-eg1W7o] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: source: [/tmp/systemd-private-e87d65304b1c48bfb95851adf96dfd82-chronyd.service-eg1W7o] [2021-12-14_00:14:37]: target: [/tmp/systemd-private-e87d65304b1c48bfb95851adf96dfd82-chronyd.service-eg1W7o.tar.gz] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: Tar: Begin,... tar: Removing leading `/' from member names /tmp/systemd-private-e87d65304b1c48bfb95851adf96dfd82-chronyd.service-eg1W7o/ /tmp/systemd-private-e87d65304b1c48bfb95851adf96dfd82-chronyd.service-eg1W7o/tmp/ [2021-12-14_00:14:37]: Tar: Finished,... [2021-12-14_00:14:37]: [2021-12-14_00:14:37]: ================ [2021-12-14_00:14:37]: Current Directory: [vmware-root_9183-3844378752] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: source: [/tmp/vmware-root_9183-3844378752] [2021-12-14_00:14:37]: target: [/tmp/vmware-root_9183-3844378752.tar.gz] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: Tar: Begin,... tar: Removing leading `/' from member names /tmp/vmware-root_9183-3844378752/ [2021-12-14_00:14:37]: Tar: Finished,... [2021-12-14_00:14:37]: [2021-12-14_00:14:37]: ================ [2021-12-14_00:14:37]: Current Directory: [systemd-private-2f6e41e4934643108d3e1a9cda48283a-chronyd.service-4Lf6qd] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: source: [/tmp/systemd-private-2f6e41e4934643108d3e1a9cda48283a-chronyd.service-4Lf6qd] [2021-12-14_00:14:37]: target: [/tmp/systemd-private-2f6e41e4934643108d3e1a9cda48283a-chronyd.service-4Lf6qd.tar.gz] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: Tar: Begin,... tar: Removing leading `/' from member names /tmp/systemd-private-2f6e41e4934643108d3e1a9cda48283a-chronyd.service-4Lf6qd/ /tmp/systemd-private-2f6e41e4934643108d3e1a9cda48283a-chronyd.service-4Lf6qd/tmp/ [2021-12-14_00:14:37]: Tar: Finished,... [2021-12-14_00:14:37]: [2021-12-14_00:14:37]: ================ [2021-12-14_00:14:37]: Current Directory: [vmware-root_9132-3092397204] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: source: [/tmp/vmware-root_9132-3092397204] [2021-12-14_00:14:37]: target: [/tmp/vmware-root_9132-3092397204.tar.gz] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: Tar: Begin,... tar: Removing leading `/' from member names /tmp/vmware-root_9132-3092397204/ [2021-12-14_00:14:37]: Tar: Finished,... [2021-12-14_00:14:37]: [2021-12-14_00:14:37]: ================ [2021-12-14_00:14:37]: Current Directory: [systemd-private-a55a1c6ad95c4575989c17fe0063c25c-chronyd.service-etDJOQ] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: source: [/tmp/systemd-private-a55a1c6ad95c4575989c17fe0063c25c-chronyd.service-etDJOQ] [2021-12-14_00:14:37]: target: [/tmp/systemd-private-a55a1c6ad95c4575989c17fe0063c25c-chronyd.service-etDJOQ.tar.gz] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: Tar: Begin,... tar: Removing leading `/' from member names /tmp/systemd-private-a55a1c6ad95c4575989c17fe0063c25c-chronyd.service-etDJOQ/ /tmp/systemd-private-a55a1c6ad95c4575989c17fe0063c25c-chronyd.service-etDJOQ/tmp/ [2021-12-14_00:14:37]: Tar: Finished,... [2021-12-14_00:14:37]: [2021-12-14_00:14:37]: ================ [2021-12-14_00:14:37]: Current Directory: [systemd-private-ad60d1195e2548ee8770d6eb198c8a36-chronyd.service-V97094] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: source: [/tmp/systemd-private-ad60d1195e2548ee8770d6eb198c8a36-chronyd.service-V97094] [2021-12-14_00:14:37]: target: [/tmp/systemd-private-ad60d1195e2548ee8770d6eb198c8a36-chronyd.service-V97094.tar.gz] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: Tar: Begin,... tar: Removing leading `/' from member names /tmp/systemd-private-ad60d1195e2548ee8770d6eb198c8a36-chronyd.service-V97094/ /tmp/systemd-private-ad60d1195e2548ee8770d6eb198c8a36-chronyd.service-V97094/tmp/ [2021-12-14_00:14:37]: Tar: Finished,... [2021-12-14_00:14:37]: [2021-12-14_00:14:37]: ================ [2021-12-14_00:14:37]: Current Directory: [vmware-root_9153-3844903065] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: source: [/tmp/vmware-root_9153-3844903065] [2021-12-14_00:14:37]: target: [/tmp/vmware-root_9153-3844903065.tar.gz] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: Tar: Begin,... tar: Removing leading `/' from member names /tmp/vmware-root_9153-3844903065/ [2021-12-14_00:14:37]: Tar: Finished,... [2021-12-14_00:14:37]: [2021-12-14_00:14:37]: ================ [2021-12-14_00:14:37]: Current Directory: [systemd-private-09d585b418934741b5c1e13ed2db4838-chronyd.service-rs8WYk] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: source: [/tmp/systemd-private-09d585b418934741b5c1e13ed2db4838-chronyd.service-rs8WYk] [2021-12-14_00:14:37]: target: [/tmp/systemd-private-09d585b418934741b5c1e13ed2db4838-chronyd.service-rs8WYk.tar.gz] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: Tar: Begin,... tar: Removing leading `/' from member names /tmp/systemd-private-09d585b418934741b5c1e13ed2db4838-chronyd.service-rs8WYk/ /tmp/systemd-private-09d585b418934741b5c1e13ed2db4838-chronyd.service-rs8WYk/tmp/ [2021-12-14_00:14:37]: Tar: Finished,... [2021-12-14_00:14:37]: [2021-12-14_00:14:37]: ================ [2021-12-14_00:14:37]: Current Directory: [vmware-root_9160-2832797001] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: source: [/tmp/vmware-root_9160-2832797001] [2021-12-14_00:14:37]: target: [/tmp/vmware-root_9160-2832797001.tar.gz] [2021-12-14_00:14:37]: ------ [2021-12-14_00:14:37]: Tar: Begin,... tar: Removing leading `/' from member names /tmp/vmware-root_9160-2832797001/ [2021-12-14_00:14:37]: Tar: Finished,... [2021-12-14_00:14:37]: [root@oracle ~]# [root@oracle ~]# ls -ltr /tmp/ total 36 -rw-r--r-- 1 root root 191 Dec 14 00:14 systemd-private-e87d65304b1c48bfb95851adf96dfd82-chronyd.service-eg1W7o.tar.gz -rw-r--r-- 1 root root 133 Dec 14 00:14 vmware-root_9183-3844378752.tar.gz -rw-r--r-- 1 root root 190 Dec 14 00:14 systemd-private-2f6e41e4934643108d3e1a9cda48283a-chronyd.service-4Lf6qd.tar.gz -rw-r--r-- 1 root root 132 Dec 14 00:14 vmware-root_9132-3092397204.tar.gz -rw-r--r-- 1 root root 193 Dec 14 00:14 systemd-private-a55a1c6ad95c4575989c17fe0063c25c-chronyd.service-etDJOQ.tar.gz -rw-r--r-- 1 root root 190 Dec 14 00:14 systemd-private-ad60d1195e2548ee8770d6eb198c8a36-chronyd.service-V97094.tar.gz -rw-r--r-- 1 root root 132 Dec 14 00:14 vmware-root_9153-3844903065.tar.gz -rw-r--r-- 1 root root 190 Dec 14 00:14 systemd-private-09d585b418934741b5c1e13ed2db4838-chronyd.service-rs8WYk.tar.gz -rw-r--r-- 1 root root 132 Dec 14 00:14 vmware-root_9160-2832797001.tar.gz [root@oracle ~]# |
可以看到【/tmp】目录下的子目录,都被压缩了。