ベストアンサー 「unlink」「rename」以外で同じ処理を 2013/01/29 04:03 ・「unlink」以外でファイル削除 ・「rename」以外でファイルリネーム したいのですが、何か方法はあるでしょうか? ※セーフモード環境で、「ファイル削除」「ファイルリネーム」したいです みんなの回答 (1) 専門家の回答 質問者が選んだベストアンサー ベストアンサー hitomura ベストアンサー率48% (325/664) 2013/01/29 23:18 回答No.1 えーと、セーフモードの意味をわかった上でその質問してますか? 対象のファイルがプログラムと同じUIDを持つように設定すればunlinkもrenameも使えるはずです。 http://php.net/manual/ja/features.safe-mode.functions.php 逆に、自身が関連しない(同じUIDを持つようにできない)ファイルに対してその関数を使うプログラムは問題があります。 とはいえ、PHP 5.4.0 からセーフモードは使用できなくなったはずですが……。 http://php.net/manual/ja/features.safe-mode.php 質問者 補足 2013/01/29 23:32 回答ありがとうございます。 >対象のファイルがプログラムと同じUIDを持つように設定 どうやって設定するのでしょうか? 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発PHP 関連するQ&A unlink 、renameが使えない理由 Redhat linux + Perl(↓バージョン) This is perl, v5.6.1 built for i386-linux Copyright 1987-2001, Larry Wall でunlinkとrenameがうまく使えないのは何故でしょうか? mkdirやmvも使えなかったように思います。rmやmkdirなどの linuxコマンドの権限は700にいじってあります。 関係あるのでしょうか?ただ755に戻してmvをしてみましたが やっぱり使えませんでした。私のミスでなければrootで 実行してもうまく動きませんでした。使える関数使えない関数 あるのでしょうか。もしそうだとしたら、その環境使える関数の リストを列挙するスクリプトやコマンドはあるのでしょうか? よろしくお願いします unlink「許可がありません」となり、消せない・・・ PHP初心者です。 PHP4.2xです。 サーバーにアップしてあるログファイル(data.log)をPHPの操作で削除したいのですが・・・ $file = './data.log'; unlink($file); で消そうとすると、 Warning: unlink(./data.log): 許可がありません in /home/xxxx/xxxx/xxxx.com/httpdocs/xxxx/test.php on line 6 と表示されます。 ファイルのパーミッションは777にしています。 おそらくphp.iniの設定かセーフティモードがどうのこうのじゃないかなぁ・・・とは思っていますが、具体的にはどこをどうしたらいいのか分かりません。 どなたかアドバイス頂けないでしょうか・・・? どうぞよろしくお願いします!! "unlink"と"rm"コマンドの使い分け方法 現在、NetBSDで開発をしているのですが、 "unlink"と"rm"の使い分けの方法がわかりません。 rmの中に"unlink"が入っていることは、わかったのですが、それならば、"unlink"だけを使えばファイルの削除ができるのでしょうか? 使い方の基準は、何なのでしょうか? ご教授よろしくお願いします。 ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム renameについて 画像ファイル登録処理を作りました。 『参照…』でファイルを選択 →確認画面に遷移、tmpフォルダに画像ファイルを一時保存 →DBに入力した情報を登録後、別フォルダにIDを名前としたフォルダを 作成、画像ファイルをrename という処理を行なっています。 今までのテスト環境では問題なく動作していましたが、新しいサーバー でテストを行なったところ、renameがうまく機能しません。 PHPファイルから見た各フォルダの位置は、以下のとおりになります。 tmpフォルダ→./tmp/ 実際にファイルを保存するフォルダ→../保存フォルダ名/ID/ 上記の「保存フォルダ」へのrenameはうまくいっていますが、 「ID名フォルダ」へのrenameがとおりません。 原因がお分かりになる方、回答よろしくお願いします。 unlink が余計に働いてエラーメッセージ お世話になります。 PHPを学んでいるものです。 開発環境は、Pleiades3.5のPHPを使っています。 やりたいことは、画像データのアップロード後の仮置きファルダの掃除です。 しかし、以下のコードでやると、「Warning: unlink(images/upload/.) [function.unlink]: Permission denied in C:\xampp\htdocs\root\manager_item_edit03.php on line 530」が2つ出てきます。 if( $handle = opendir(PRE_IMAGE_DIR) ){ while( ($file=readdir($handle)) == true ): if( file_exists(PRE_IMAGE_DIR.$file) ){ unlink(PRE_IMAGE_DIR.$file); } endwhile; closedir($handle); } ただ、目に見えるファイル(事前に無駄なファイルをいくつか置いてみました)はすべて削除されています。つまり、私から見ると、unlinkが余計に働いたことでエラーが出ている状況です。 念のため、unlinkの前に下記のコードを挿入して、何のファイルか見てみたところ、「.」、「..」というピリオド(!?)だけのファイル名があるようです。 ?> <pre> <?php echo $file; ?> </pre> <?php 皆様で、このエラーを回避する方法や、そもそも何のファイルなのか、ご存知であればご教示をください。お願いします。 rename コマンドでファイル名を短く出来る? デジカメから取り込んだ写真が DSCF9352.JPG などとなってまして、 これを 9352.jpg にしたいと思ってます。 まず、rename でダイレクトに大文字から小文字に変換は出来ますか? 試したところ出来なかったのでこちらでやりました。 rename *.JPG *.JPP rename *.JPP *.jpg 次に DSCF9352.jpg の DSCF を削除したいのですが、 それは可能でしょうか? rename DSCF* * とは出来ないようですね rename コマンド以外でも、なにか方法あればよろしくお願いします。 open中のファイルをrename オープン中のファイルをflockによる排他をしたままrenameしたいのですがどうもうまくいきません。 sysopen(LOCK, "$file", O_WRONLY); もしくは open(LOCK, "> $file"); flock(LOCK, 2); rename($tempfile,$file); close; close前にrenameするとロックが外れてしまいます。 close後にrenameをするとやはりロックが外れた状態でのrenameになります。 renameするファイル以外にflock専用ファイルを固定で一つ用意すれば簡単なのですが openしたいファイル数は相当な数があり、各ファイルごとにロックをかけたいのです。 全ファイル分のflock専用ファイルを用意するか、排他方式をmkdirにする以外 何か良い手立てはございますでしょうか。 ReNameソフトで設定を保存する ReNameソフトとして 「おー瑠璃ねーむ」と「Advanced Renamer」を常用していますが 定型のRenameをする場合、簡単に以前のReName方法を呼び出すような機能が無いように思えます。 (私が知らないだけなら方法を教えてください。) 例えば、ファイル名の文字列で後部から10文字目までを全て削除する場合 この設定を「後部10文字削除」のような名前で保存して呼び出すような機能 又、他のReNameソフトで希望する機能を有するソフトがあれば紹介ください。 利用中のOS : Windows11 Pro CPANのrenameについて http://search.cpan.org/~rmbarker/File-Rename-0.02/rename.PL Robin Barker > File-Rename-0.02 > rename の使用方法を教えてください。 File-Rename-0.02.tar.gzをDownloadし、解凍しましたが、 以下のエラーメッセージが出力されます。 File-Rename-0.02 512 $rename -bash: rename: command not found File-Rename-0.02 513 $rename perlexpr -bash: rename: command not found 動作環境 [About my Mac] Mac OS X 10.4.6; Darwin 8.6.1; MacBookPro1,1; Intel Core Duo renameコマンドについて FTP先のファイル名を以下のように変更したいです。 rename *.txt *.csv これを実行すると 550 *.txt: The filename, directory name, or volume label syntax is incorrect. となってしまいます。 ワイルドカードは使用できると思っていたのですが、 何がいけないのでしょうか? ちなみに rename 111.txt 111.csv と指定した場合は問題なくできます。 複数のファイルを変換したいので困っています。 環境はWindows2000です。宜しくお願いします。 rename関数 できない どうもこんばんは ファイル名を変更したくて、多数のサイトを調べてました。 どのサイトも全く同じことを書いてて rename("b.txt","a.txt"); a.txt を b.txt に変更する場合の記述。 そのとおりにやったのですが、 「Warning: rename(b.txt,a.txt) [function.rename]: No such file or directory in C:\xampp\htdocs\test\test.php on line 13 」 とエラーが吐いてしまい、いくらやってもこうなってしまいます。 エラー文は該当ファイルかディレクトリが無いとかそういう類だと思いますが、原因がわかりません。 これで数時間費やしてしまいまして、ヒントや答えのレスをいただくころには、 copy関数で代用していると思いますが、どうしてrenameできないのか気になります・・ ヒントでもいいので、レスいただければと思います。 因みにwindowsXPでのテスト環境下(XAMPP)です。 PHP Version 5.2.5 unlinkしたファイルを元に戻す方法? UNIX系OSでは(Windowsとかでもできるのでしょうか?) プログラム中で使う一時ファイルを、 プログラムが途中で異常終了したりした場合でも 確実に消えてなくなるように、 int fd = open( "temp.dat", O_RDWR|O_CREAT ) ; unlink( "temp.dat" ) ; というように、一時ファイルを作った直後にunlink、という手段が よく使われますが・・・ この、unlinkしてしまって、ファイルディスクリプタだけになったファイルを、 別のファイルに自力で書き写す以外に、 再びファイルとして残すことってできないのでしょうか? 要するに・・・ プログラムが途中で異常終了したりしたときは、 確実に消えてほしいけれど、 必要な場合は残したい、でも、残す処理が途中で中断したりして、 半端なファイルが残ってほしくない、 ・・・というような要件なのですが。。 AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム renameについて ”ABCDEF”というフォルダに入っている3つのファイルの名前を それぞれ”01,02,03”にしたいとき下記のプログラムで大丈夫ですか? というか、完成していますか? 他にしなくてはいけない事や間違いがあったら教えて下さい。 #! c:/perl/bin/perl $abcdef = './ABCDEF/'; $newname = 01 02 03; foreach $abcdef (@NAME) { my $newname = $abcdef; rename($abcdef,$newname) or warn "Couldn't rename $abcdef to $newname: $!\n"; } パソコン初心者で困っています。実際に実行したくても ”ページが見つかりません”になって確認できないし・・・ インストールは正常に出来たはずなのに・・・ 何でですかね? あと、フォルダに入っているもっと多くのファイル名を変えるとき(1000個とか) にはどうしたらいいんですか? 宜しくお願い致します。 ネットワークドライブ上ファイルのrename *.* 例えば、通常のドライブであれば、 >cd a:\data >rename *.html *.htm のrename.batファイルをエディターで作れば、 a:\data上のファイルは一括してrenameされますが、 例えば \\lan\data のようなネットワークドライブの場合、DOSコマンドが対応していないのか、全くrenameコマンドを受け付けません。 質問はこうです。 「ネットワークドライブ上の同じフォルダ内にある複数ファイルを一括してrenameするには、どのような手立てがありますか?」 よろしくお願いいたします。 Renameするパッチ on Win2000 あるフォルダに定期的に作成されるファイルがあります。 そのファイル名を特定のファイル名に定期的にrenameしたいと思うのですが、どうすればよいでしょうか・・・パッチとかでcopyで作れるなら簡単でいいので、「定期的に」実行させる方法を教えてもらえないでしょうか。 例えば、 5分後とに000*.fffってファイルができます。 (*はインクリされる数値) それをkotei.fffというファイルに5分後とにRenameする ぜひ教えてください!! ファイルの削除について ( unlink ) perl プログラミング 2日目の初心者です。 以下のようなスクリプトを書いて test.cgi とかで $del_count = unlink glob("msg-*.txt"); 保存し、ブラウザーでアクセスすると、ちゃんと ファイルが削除されるのですが、 シェル上で実行すると、以下のようなメッセージ glob failed (child exited with status 1) at test.cgi line 5. とか出て削除ができないのです。 パーミッションも 755 とかで試したのですが、 どうしてなのでしょうか・・・うんうん煮詰まって います。 bat rename 例) D:\A\aaa.logファイルをカレントディレクトリ配下の D:\A\B\yymmdd_aaa.logファイルへrename/移動を 同時に行いたいです。 yymmdd_を追加する方法がわかりません。 yymmddはdateでできるのでしょうか? #yymmddは日付で年月日の数字のみ入れたい rename関数のファイルロック カウンタスクリプトを作る際に、必ずファイルロックってしますよね。 いろいろなサンプルを見ると、symlink関数やmkdir関数、open関数などを使ったロック方法があるんですけど その中にrename関数を使ったものがあるんです。 解説を読んでみると、rename関数の方が他のよりも比較的に良いようなことが書いてあるのでさっそく使用。 しかし、表示が遅いんです。 カウンタは画像連結をしてIMGで呼び出しています。 renameでロックすると遅くなるのは、もうどうしようもないことなのでしょうか? batファイルでrenameができません。 Windowsのbatファイルでrenameをするにはどうすればよいでしょうか? カレントディレクトリ └ A というディレクトリ構造があって、Aの中には「a.txt」があるとします。 カレントディレクトリから、 「rename "./a/A.txt" B.txt」 と書いてあるbatファイルを起動しても、「a.txt」の名前が変更されません。 「指定したパスが見つかりません。」と出てきてしまいます。 ダブルクォーテーションを取ったりつけたり、絶対パス、相対パスを書いたりと いろいろ試しましたがだめでした。 何か方法はないでしょうか? CFile::Renameで書き込み途中のファイルがリネームされて困っ CFile::Renameで書き込み途中のファイルがリネームされて困っています。 ファイル書き込み中のファイルはリネームしない方法はあるのでしょうか? ファイルのリネーム(CFile::Rename)関数を使用してフォルダ内にあるファイル名をリネームする処理を作成しています。 フォルダ内にはA_で始まるファイルが複数存在し、一定周期で別のスレッドからA_で始まるファイルが書き込まれている状態です。 私が作成している処理は、そのフォルダにA_で始まるファイルが存在する場合に、A_をRename関数でB_にリネームしています。 ここで、別スレッドがA_で始まる新しいファイルを書き込みしている最中に私が作成している処理でRename関数が実行されると、基本的にはExceptionが発生するのですが、Exceptionが発生せずに書き込み途中のファイルがRenameされてしまっています。 1.A_XXX001.txtに書き込み中(100行目まで書き込み完了) 2.Rename処理が実行される。 3.B_XXX001.txtが作成される(100行目までのファイル 作成日:2010.02.04 10:00) 4.その後もA_XXX001.txtに書き込みが行われ200行目まで書き込んで終了 (作成日:2010.02.04 10:02) 結果:B_XXX001.txtファイルは不完全なファイルとして作成されてしまっています。 このような現象が起こってしまっています。 どなたかご教授願います。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
補足
回答ありがとうございます。 >対象のファイルがプログラムと同じUIDを持つように設定 どうやって設定するのでしょうか?