質問編集履歴

13

検証の追記

2018/11/20 00:02

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -205,3 +205,15 @@
205
205
 
206
206
 
207
207
  また、zzzというディレクトリを作成したところ、index.phpと同様に削除されずに残ってしまうことを確認いたしました。
208
+
209
+
210
+
211
+ ###検証で分かったこと(現状)
212
+
213
+ scriptディレクトリより後にindex.phpが削除されてしまうため、
214
+
215
+ 「/home/xxx/kensyou/script/../index.php」というパスはありませんよ と怒られてしまっている
216
+
217
+  ↓
218
+
219
+ scriptだけ最後に消したいが、うまくいかない

12

検証の追記

2018/11/20 00:02

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -159,3 +159,49 @@
159
159
  ファイルのパーミッションの問題?
160
160
 
161
161
   → chmod 777でフルアクセスにしてみたが、削除されない
162
+
163
+
164
+
165
+
166
+
167
+ ```sh
168
+
169
+ #スクリプト自身の絶対パス取得
170
+
171
+ script_dir_path=$(dirname $(readlink -f $0))
172
+
173
+
174
+
175
+ #ディレクトリ名取得
176
+
177
+ script_dir=`echo ${script_dir_path} | awk -F "/" '{ print $NF }'`
178
+
179
+
180
+
181
+ #最初に自分自身のディレクトリの親ディレクトリから、
182
+
183
+ #自分自身のディレクトリ以外の配下ディレクトリを削除する
184
+
185
+ ls ${script_dir_path}/../ | grep -v -E ${script_dir} | xargs rm -rf
186
+
187
+
188
+
189
+ #最後に自分自身のディレクトリの親ディレクトリから、
190
+
191
+ #全ての配下ディレクトリを削除する
192
+
193
+ rm -rf ${script_dir_path}/../*
194
+
195
+ ```
196
+
197
+
198
+
199
+ 上記のような内容で、最初に自分のディレクトリ以外を削除
200
+
201
+ 次に自分を含めて削除とすればどうか検証しましたが、
202
+
203
+ やはりindex.phpだけが削除されずに残ってしまいました。
204
+
205
+
206
+
207
+ また、zzzというディレクトリを作成したところ、index.phpと同様に削除されずに残ってしまうことを確認いたしました。

11

検証の追記

2018/11/19 10:31

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -151,3 +151,11 @@
151
151
  index.phpより先にscriptディレクトリの中身が削除されてしまったため、
152
152
 
153
153
  index.phpの削除処理が走らなかった?(要検証)
154
+
155
+  → 回答いただいた方の環境では削除がされたので違う
156
+
157
+
158
+
159
+ ファイルのパーミッションの問題?
160
+
161
+  → chmod 777でフルアクセスにしてみたが、削除されない

10

追記

2018/11/19 09:48

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -132,7 +132,7 @@
132
132
 
133
133
  ++ dirname /home/xxx/kensyou/script/delete.sh
134
134
 
135
- + script_dir_path=/root/kensyou/script
135
+ + script_dir_path=/home/xxx/kensyou/script
136
136
 
137
137
  + rm -rf /home/xxx/kensyou/script/../01 /home/xxx/kensyou/script/../02 /home/xxx/kensyou/script/../03 /home/xxx/kensyou/script/../script /home/xxx/kensyou/script/../index.php
138
138
 

9

追記

2018/11/19 09:35

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
  script_dir_path=$(dirname $(readlink -f $0))
118
118
 
119
- echo ${script_dir_path}/../*
119
+ rm -rf ${script_dir_path}/../*
120
120
 
121
121
  ```
122
122
 
@@ -134,9 +134,7 @@
134
134
 
135
135
  + script_dir_path=/root/kensyou/script
136
136
 
137
- + echo /home/xxx/kensyou/script/../01 /home/xxx/kensyou/script/../02 /home/xxx/kensyou/script/../03 /home/xxx/kensyou/script/../script /home/xxx/kensyou/script/../index.php
137
+ + rm -rf /home/xxx/kensyou/script/../01 /home/xxx/kensyou/script/../02 /home/xxx/kensyou/script/../03 /home/xxx/kensyou/script/../script /home/xxx/kensyou/script/../index.php
138
-
139
- /home/xxx/kensyou/script/../01 /home/xxx/kensyou/script/../02 /home/xxx/kensyou/script/../03 /home/xxx/kensyou/script/../script /home/xxx/kensyou/script/../index.php
140
138
 
141
139
  ```
142
140
 

8

検証の追記

2018/11/19 09:34

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -145,3 +145,11 @@
145
145
  echoの内容としては、index.phpも含まれているため、
146
146
 
147
147
  rm -rfの対象になりそうなのですが、実際にはindex.phpのみ削除がなされないという結果となりました。
148
+
149
+
150
+
151
+ ###推測
152
+
153
+ index.phpより先にscriptディレクトリの中身が削除されてしまったため、
154
+
155
+ index.phpの削除処理が走らなかった?(要検証)

7

検証の追記

2018/11/19 09:18

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -102,7 +102,7 @@
102
102
 
103
103
 
104
104
 
105
- ##検証
105
+ ##追加検証
106
106
 
107
107
  回答頂いた内容より、
108
108
 
@@ -139,3 +139,9 @@
139
139
  /home/xxx/kensyou/script/../01 /home/xxx/kensyou/script/../02 /home/xxx/kensyou/script/../03 /home/xxx/kensyou/script/../script /home/xxx/kensyou/script/../index.php
140
140
 
141
141
  ```
142
+
143
+
144
+
145
+ echoの内容としては、index.phpも含まれているため、
146
+
147
+ rm -rfの対象になりそうなのですが、実際にはindex.phpのみ削除がなされないという結果となりました。

6

追記

2018/11/19 09:15

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -33,6 +33,12 @@
33
33
  →[/script]
34
34
 
35
35
  →→[/delete.sh]
36
+
37
+
38
+
39
+ 【追加検証分】
40
+
41
+ →[index.php]
36
42
 
37
43
 
38
44
 

5

追記

2018/11/19 09:12

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -106,13 +106,21 @@
106
106
 
107
107
 
108
108
 
109
+ ```sh
109
110
 
111
+ script_dir_path=$(dirname $(readlink -f $0))
110
112
 
111
- sh -xでの実行結果
113
+ echo ${script_dir_path}/../*
114
+
115
+ ```
112
116
 
113
117
 
114
118
 
119
+ 上記スクリプトのsh -xでの実行結果
120
+
121
+
122
+
115
- ```html
123
+ ```sh
116
124
 
117
125
  +++ readlink -f kensyou/script/delete.sh
118
126
 

4

補足説明の追加

2018/11/19 09:11

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -103,3 +103,25 @@
103
103
  rm -rfのパス指定のクォーテーションを外すことでパスが正しく解釈され、削除が動くようになりました。
104
104
 
105
105
  しかし、[/home/xxx/kensyou/script/]の直下にファイル(仮にindex.phpなど)がある場合、index.phpの削除がなされないという動作になりました。
106
+
107
+
108
+
109
+
110
+
111
+ sh -xでの実行結果
112
+
113
+
114
+
115
+ ```html
116
+
117
+ +++ readlink -f kensyou/script/delete.sh
118
+
119
+ ++ dirname /home/xxx/kensyou/script/delete.sh
120
+
121
+ + script_dir_path=/root/kensyou/script
122
+
123
+ + echo /home/xxx/kensyou/script/../01 /home/xxx/kensyou/script/../02 /home/xxx/kensyou/script/../03 /home/xxx/kensyou/script/../script /home/xxx/kensyou/script/../index.php
124
+
125
+ /home/xxx/kensyou/script/../01 /home/xxx/kensyou/script/../02 /home/xxx/kensyou/script/../03 /home/xxx/kensyou/script/../script /home/xxx/kensyou/script/../index.php
126
+
127
+ ```

3

補足 追記

2018/11/19 09:10

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -93,3 +93,13 @@
93
93
  上記スクリプトにより、「rm -rf /home/xxx/kensyou/script/../*」というコマンドが発行されるので、
94
94
 
95
95
  kensyouディレクトリ以下の全てが削除される筈だと思っていた
96
+
97
+
98
+
99
+ ##検証
100
+
101
+ 回答頂いた内容より、
102
+
103
+ rm -rfのパス指定のクォーテーションを外すことでパスが正しく解釈され、削除が動くようになりました。
104
+
105
+ しかし、[/home/xxx/kensyou/script/]の直下にファイル(仮にindex.phpなど)がある場合、index.phpの削除がなされないという動作になりました。

2

誤りの訂正

2018/11/19 09:07

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
  #自身のパスの1つ上 kensyouディレクトリ以下のディレクトリとファイルを全て削除
58
58
 
59
- rm -rf "${script_dir_path}/../../*"
59
+ rm -rf "${script_dir_path}/../*"
60
60
 
61
61
 
62
62
 
@@ -70,7 +70,7 @@
70
70
 
71
71
 
72
72
 
73
- しかし、「"${script_dir_path}/../../*"」の部分をechoで見てみると、
73
+ しかし、「"${script_dir_path}/../*"」の部分をechoで見てみると、
74
74
 
75
75
  「/home/xxx/kensyou/script/../*」となる為、「rm -rf /home/xxx/kensyou/script/../*」コマンドになりそうなのに
76
76
 

1

追記

2018/11/19 08:25

投稿

shakevo
shakevo

スコア453

test CHANGED
File without changes
test CHANGED
@@ -85,3 +85,11 @@
85
85
 
86
86
 
87
87
  お手数ですが、宜しくお願い致します。
88
+
89
+
90
+
91
+ ##現在の想定
92
+
93
+ 上記スクリプトにより、「rm -rf /home/xxx/kensyou/script/../*」というコマンドが発行されるので、
94
+
95
+ kensyouディレクトリ以下の全てが削除される筈だと思っていた