code: func (f *fsImpl) moveToTrash(ctx context.Context, path string) string {
  	if err := os.MkdirAll(f.trash, 0777); err != nil {
  		logging.Warningf(ctx, "fs: can't create trash directory %q - %s", f.trash, err)
  		return ""
  	}
  	trashed := filepath.Join(f.trash, pseudoRand())
  	if err := atomicRename(path, trashed); err != nil {
  		if !os.IsNotExist(err) {
  			logging.Warningf(ctx, "fs: failed to rename(%q, %q) - %s", path, trashed, err)
  		}
  		return ""
  	}
  	return trashed
  }
docs: // moveToTrash is best-effort function to move file or dir to trash.
  //
  // It returns path to a moved file in trash, or empty string if it can't
  // be done.