【问题标题】:Ubuntu giving permissions from javaUbuntu从java授予权限
【发布时间】:2023-04-02 09:44:02
【问题描述】:

这是我在管道中创建的几个 Bash 脚本之一。我的困难是我想让创建的文件可执行而无需用户输入终端“sudo chmod 777 /file/path/”

String Trans_ref = 
    "#!/bin/bash \n" +
    "mkdir -p "+Output+"/"+Sample+"_RSEM \n" +
    "cd "+Output+"/"+Sample+"_RSEM \n" +
    "PATH=$PATH:"+RSEMprep+" \n" +
    "export PATH=$PATH \n" + 
    ""+RSEMprep+"/rsem-prepare-reference --no-polyA --bowtie "+Output+"/Trans_CDHIT.fast Trans_CDHIT.RSEM \n" +    
    ""+RSEMprep+"/rsem-calculate-expression --paired-end -p "+CPU+" "+Output+"/SRR617145_1.fastq "+Output+"/SRR617145_2.fastq Trans_CDHIT.RSEM Trans_CDHIT.genes.results  \n"+
    ""+Trinprep+"/util/misc/count_features_given_MIN_FPKM_threshold.pl "+Output+"/"+Sample+"_RSEM/RSEM.genes.results > "+Output+"/"+Sample+"_RSEM/cumul_counts.txt \n"+
    ""+Trinprep+"/util/filter_fasta_by_rsem_values.pl --rsem_output= "+Output+"/"+Sample+"_RSEM/RSEM.isoforms.results --fasta="+Output+"/Trans_CDHIT.fasta -t 100 --output="+Output+"/"+Sample+"_RSEM/Trans_RSEMfilters.fasta \n" +
    ""+Trinprep+"/util/bowtie_PE_separate_then_join.pl --seqType fq --left "+Output+"/"+Sample+"_1.fasta --right "+Output+"/"+Sample+"_2.fasta --target "+Output+"/Trans_CDHIT.fasta --aligner bowtie --SS_lib_type FR -- -p 4 --all --best --strata -m 300 \n";  


        System.out.println(Trans_ref);

        FileUtils.writeStringToFile(new File(Output+"/TranRSEM"), Trans_ref);
        StringBuffer Trim = new StringBuffer();

        String cmd = (Output+"/TranRSEM");


    Process p;

    try{
        p = Runtime.getRuntime().exec(new String[]{"/bin/sh","-c", cmd});

        p.waitFor();

        BufferedReader reader1 = 
                        new BufferedReader(new InputStreamReader(p.getInputStream()));

            System.out.println("Merg Finished");

        } catch (Exception e) {
        e.printStackTrace();


        }

非常感谢

【问题讨论】:

    标签: java ubuntu file-permissions


    【解决方案1】:

    有几种方法,但最好是使用SetExecutable 一旦你创建了文件。它看起来像这样。

     if (file.exists()) {
                boolean bval = file.setExecutable(true);
                ..... set the owner's execute permission
            } else {
                ...... File does not exist;
            }
    
    
     if (file.exists()) {
                boolean bval = file.setExecutable(true, false);
                ..... set everybody's execute permission
            } else {
                ...... File does not exist;
            }
    

    希望对你有帮助

    【讨论】:

    • 这正是我需要的一种魅力
    猜你喜欢
    • 2012-09-11
    • 2015-02-10
    • 2013-06-07
    • 2016-08-24
    • 2015-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多