rm でヒヤヒヤするので、ゴミ箱に捨てるコマンドをつくってみた
ゴミ箱に捨てるコマンド
// // main.m // rm-trash // // Created by takuya on 2013/08/30. // Copyright (c) 2013年 takuya . All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSFileManager *file_manager = [NSFileManager defaultManager]; if (argc == 1) { fprintf(stderr, "ファイル指定してね.\n"); return 1; } for (int i=1; i < argc; i++) { const char* file_to_trash = argv[i]; NSURL *url = [NSURL fileURLWithPath:[NSString stringWithUTF8String:file_to_trash]]; NSURL *trashed; NSError *error; // ファイルが存在するか? if ([file_manager fileExistsAtPath:[url path ]]) { // yes [file_manager trashItemAtURL:url resultingItemURL:&trashed error:&error]; fprintf(stdout, "ゴミ箱に捨てたよ %s to %s\n", [[url path] UTF8String], [[trashed path] UTF8String]); } else { //ファイルが存在しないと何もしない } } } return 0; }
単純に、~/.trashにmoveすると、元に戻すが出来ないらしいので、ちゃんとFoundationを使う必要があるってことが驚きだった。なるほど
rm の代替に使うには、rm のオプションをそのまま無視してくれないと困る。rm にオプションをつけて使うのが基本なので、オプションつけてもエラーにならないようにしたかった。
brewのrm-trashだと、
alias rm="rm-trash" rm -rf hoge
でオプションがエラーになっちゃって違和感がするのでした。