shell拷貝原文件到目標對應文件夾


 1 [root@localhost mv_test]# cat mv.sh
 2 #!/bin/bash
 3 
 4 DIR=/root/linshi/move
 5 FILE=/root/linshi/test/mv
 6 if [ -d $DIR ];then
 7     rm -rf $DIR/*
 8 fi
 9 if [ -d $FILE ];then
10     rm -rf $FILE/*
11 fi
12 mkdir $DIR/{1..30}
13 touch $FILE/{1..30}dinsoaul
14 ls $FILE|sort -n > a.txt; ls $DIR |sort -n > b.txt;paste a.txt b.txt > paste.txt
15 cat paste.txt |while read filename dirname
16 do
17     echo "$filename $dirname" &>/dev/null
18     cp -a $FILE/$filename $DIR/$dirname
19 done
20 [root@localhost mv_test]# ls /root/linshi/test/mv
21 10dinsoaul  13dinsoaul  16dinsoaul  19dinsoaul  21dinsoaul  24dinsoaul  27dinsoaul  2dinsoaul   4dinsoaul  7dinsoaul
22 11dinsoaul  14dinsoaul  17dinsoaul  1dinsoaul   22dinsoaul  25dinsoaul  28dinsoaul  30dinsoaul  5dinsoaul  8dinsoaul
23 12dinsoaul  15dinsoaul  18dinsoaul  20dinsoaul  23dinsoaul  26dinsoaul  29dinsoaul  3dinsoaul   6dinsoaul  9dinsoaul
24 [root@localhost mv_test]# tree /root/linshi/move/
25 /root/linshi/move/
26 ├── 1
27 │?? └── 1dinsoaul
28 ├── 10
29 │?? └── 10dinsoaul
30 ├── 11
31 │?? └── 11dinsoaul
32 ├── 12
33 │?? └── 12dinsoaul
34 ├── 13
35 │?? └── 13dinsoaul
36 ├── 14
37 │?? └── 14dinsoaul
38 ├── 15
39 │?? └── 15dinsoaul
40 ├── 16
41 │?? └── 16dinsoaul
42 ├── 17
43 │?? └── 17dinsoaul
44 ├── 18
45 │?? └── 18dinsoaul
46 ├── 19
47 │?? └── 19dinsoaul
48 ├── 2
49 │?? └── 2dinsoaul
50 ├── 20
51 │?? └── 20dinsoaul
52 ├── 21
53 │?? └── 21dinsoaul
54 ├── 22
55 │?? └── 22dinsoaul
56 ├── 23
57 │?? └── 23dinsoaul
58 ├── 24
59 │?? └── 24dinsoaul
60 ├── 25
61 │?? └── 25dinsoaul
62 ├── 26
63 │?? └── 26dinsoaul
64 ├── 27
65 │?? └── 27dinsoaul
66 ├── 28
67 │?? └── 28dinsoaul
68 ├── 29
69 │?? └── 29dinsoaul
70 ├── 3
71 │?? └── 3dinsoaul
72 ├── 30
73 │?? └── 30dinsoaul
74 ├── 4
75 │?? └── 4dinsoaul
76 ├── 5
77 │?? └── 5dinsoaul
78 ├── 6
79 │?? └── 6dinsoaul
80 ├── 7
81 │?? └── 7dinsoaul
82 ├── 8
83 │?? └── 8dinsoaul
84 └── 9
85     └── 9dinsoaul
86 
87 30 directories, 30 files
88 [root@localhost mv_test]# 

需求:將文件分別拷貝到對應的文件夾中(例如:將數字為1的文件拷貝到文件夾1中)

cat paste.txt |while read filename dirname
do
     echo "$filename $dirname" &>/dev/null
done
知識點:while讀取一行,將數據賦值給2個變量。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM