删除目录中除两个特定文件夹之外的所有内容

时间:2015-10-20 21:55:17

标签: unix command-line command

我正在尝试删除目录中的所有内容,除了我知道其名称的两个文件夹。假设这两个文件夹名为“dont_delete1”和“dont_delete2”。在当前目录中,存在其他文件夹和文件。

我试过了

rm -r !(dont_delete1|dont_delete2) 

但这需要我shopt -s extglob,由于某种限制,我无法使用。

所以我转向

find . \! -name [folder name] -delete

我已经在一个文件夹上测试了它并且它可以工作。但我无法找到一种方法将上述命令用于多个文件夹。我已经尝试了各种各样的命令,我认为这些命令可以工作但是不成功。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

许多不同的解决方案,这里很容易理解:

function dc_form_image_upload() {
    if ( ! function_exists( 'wp_handle_upload' ) ) {
        require_once( ABSPATH . 'wp-admin/includes/file.php' );
    }

    $uploadedfile = $_POST['file'];
    //print_r($uploadedfile);
    // die();

    $upload_overrides = array( 'test_form' => false );

    $movefile = wp_handle_upload( $uploadedfile, $upload_overrides ); 

    if ( $movefile && !isset( $movefile['error'] ) ) {
        echo "File is valid, and was successfully uploaded.\n";
        var_dump( $movefile);
    } else {
        /**
         * Error generated by _wp_handle_upload()
         * @see _wp_handle_upload() in wp-admin/includes/file.php
         */
        print_r($movefile);
    }
}