在文件名

时间:2018-06-04 04:39:28

标签: bash date

我试图通过在bash脚本的目录和子目录中的所有文件(不包括文件夹)的前面添加创建(未修改)时间戳来重命名。 我从我的一个帖子中得到了这个bash。但是当前的bash不会打印创建日期。

for f in $(find . -type f); do    
    mv -T "$f" "${f%/*}/$(date -r "$f" +"%Y %m %d %H %M %S"|sed -e 's/   /_/g')_"${f##*/}""
done

2 个答案:

答案 0 :(得分:0)

您可以使用以下bash命令:

QueryAttachments

find . -type f -exec bash -c 'mv "$1" "$(dirname "$1")/$(stat -c %w "$1" | sed "s/\([^.]*\).*/\1/;s/[-: ]/_/g")_$(basename "$1")"' _ {} \; 查找所有常规文件,并使用find找到每个文件进行重命名。

构建文件名,使其在文件开头附加创建时间。

为了获得文件创建时间,我使用mv选项stat代替-c %w来提供修改时间。

date -r命令将sed的输出替换为所需格式(stat)。

答案 1 :(得分:0)

使用date -r代替stat ...

def get_tf_serving(model_uri, model_name, input_name, output_name, X):
    channel = grpc.insecure_channel(model_uri, options=MESSAGE_OPTIONS)
    stub = prediction_service_pb2_grpc.PredictionServiceStub(channel)
    request = predict_pb2.PredictRequest()
    request.model_spec.name = model_name
    request.model_spec.signature_name = 'serving_default'
    request.inputs[input_name].CopyFrom(util.make_tensor_proto(X.astype(np.float32), shape=X.shape))
    result = stub.Predict(request, 4.0)
    channel.close()

    # imagine more stuff here doing something with the returned data
    data = result.outputs[output_name].float_val    

    return data